brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · ad8e2c2 Raw
56 lines · cpp
1// RUN: %clang_cc1 -std=gnu++20 -fsyntax-only -ast-dump %s | FileCheck %s2 3void f() {4  [[clang::annotate("decl", 1)]] int i = 0;5  [[clang::annotate("stmt", 2)]] i += 1;6[[clang::annotate("label", 3)]] label1:7  i += 2;8}9 10// CHECK: -FunctionDecl {{.*}} f 'void ()'11// CHECK: -VarDecl {{.*}} used i 'int'12// CHECK: -AnnotateAttr {{.*}} "decl"13// CHECK: -IntegerLiteral {{.*}} 'int' 114// CHECK: -AttributedStmt15// CHECK: -AnnotateAttr {{.*}} "stmt"16// CHECK: -IntegerLiteral {{.*}} 'int' 217// CHECK: -LabelStmt {{.*}} 'label1'18// CHECK: -AnnotateAttr {{.*}} "label"19// CHECK: -IntegerLiteral {{.*}} 'int' 320// CHECK: -CompoundAssignOperator21 22template <typename T> void g() {23  [[clang::annotate("tmpl_decl", 4)]] T j = 0;24  [[clang::annotate("tmpl_stmt", 5)]] j += 1;25[[clang::annotate("tmpl_label", 6)]] label2:26  j += 2;27}28 29// CHECK: -FunctionTemplateDecl {{.*}} g30// CHECK: -VarDecl {{.*}} referenced j 'T'31// CHECK: -AnnotateAttr {{.*}} "tmpl_decl"32// CHECK: -IntegerLiteral {{.*}} 'int' 433// CHECK: -AttributedStmt34// CHECK: -AnnotateAttr {{.*}} "tmpl_stmt"35// CHECK: -IntegerLiteral {{.*}} 'int' 536// CHECK: -LabelStmt {{.*}} 'label2'37// CHECK: -AnnotateAttr {{.*}} "tmpl_label"38// CHECK: -IntegerLiteral {{.*}} 'int' 639// CHECK: -CompoundAssignOperator40 41void h() {42  g<int>();43}44 45// CHECK: -FunctionDecl {{.*}} used g 'void ()' implicit_instantiation46// CHECK: -VarDecl {{.*}} used j 'int'47// CHECK: -AnnotateAttr {{.*}} "tmpl_decl"48// CHECK: -IntegerLiteral {{.*}} 'int' 449// CHECK: -AttributedStmt50// CHECK: -AnnotateAttr {{.*}} Implicit "tmpl_stmt"51// CHECK: -IntegerLiteral {{.*}} 'int' 552// CHECK: -LabelStmt {{.*}} 'label2'53// CHECK: -AnnotateAttr {{.*}} "tmpl_label"54// CHECK: -IntegerLiteral {{.*}} 'int' 655// CHECK: -CompoundAssignOperator56