| // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -ast-dump -fcolor-diagnostics %s | FileCheck --strict-whitespace %s |
| // REQUIRES: ansi-escape-sequences |
| |
| /// <a>Hello</a> |
| /// <br/> |
| int Test __attribute__((unused)); |
| |
| /// Comment |
| void TestAttributedStmt() { |
| switch (1) { |
| case 1: |
| [[clang::fallthrough]]; |
| case 2: |
| ; |
| } |
| } |
| |
| class __attribute__((lockable)) Mutex { |
| /// A variable |
| int var1; |
| /// Another variable |
| /// |
| /// Like the other variable, but different |
| int var2; |
| } mu1, mu2; |
| int TestExpr __attribute__((guarded_by(mu1))); |
| |
| //CHECK: {{^}}({{.}}[0;1;32mTranslationUnitDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33m<invalid sloc>{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mTypedefDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33m<invalid sloc>{{.}}[0m>{{.}}[0;1;36m __int128_t{{.}}[0m {{.}}[0;32m'__int128'{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mTypedefDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33m<invalid sloc>{{.}}[0m>{{.}}[0;1;36m __uint128_t{{.}}[0m {{.}}[0;32m'unsigned __int128'{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mTypedefDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33m<invalid sloc>{{.}}[0m>{{.}}[0;1;36m __builtin_va_list{{.}}[0m {{.}}[0;32m'__va_list_tag [1]'{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33m{{.*}}ast-dump-color.cpp:6:1{{.}}[0m, {{.}}[0;33mcol:5{{.}}[0m>{{.}}[0;1;36m Test{{.}}[0m {{.}}[0;32m'int'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;34mUnusedAttr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:25{{.}}[0m>){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mFullComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:4:4{{.}}[0m, {{.}}[0;33mline:5:8{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mParagraphComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:4:4{{.}}[0m, {{.}}[0;33mline:5:8{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:4:4{{.}}[0m> Text=" "){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mHTMLStartTagComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:5{{.}}[0m, {{.}}[0;33mcol:7{{.}}[0m> Name="a"){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:8{{.}}[0m, {{.}}[0;33mcol:12{{.}}[0m> Text="Hello"){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mHTMLEndTagComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:13{{.}}[0m, {{.}}[0;33mcol:16{{.}}[0m> Name="a"){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:5:4{{.}}[0m> Text=" "){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mHTMLStartTagComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:5{{.}}[0m, {{.}}[0;33mcol:8{{.}}[0m> Name="br" SelfClosing)))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mFunctionDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:9:1{{.}}[0m, {{.}}[0;33mline:16:1{{.}}[0m>{{.}}[0;1;36m TestAttributedStmt{{.}}[0m {{.}}[0;32m'void (void)'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCompoundStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:9:27{{.}}[0m, {{.}}[0;33mline:16:1{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mSwitchStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:10:3{{.}}[0m, {{.}}[0;33mline:15:3{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;34m<<<NULL>>>{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mIntegerLiteral{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:10:11{{.}}[0m> {{.}}[0;32m'int'{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;1;36m 1{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCompoundStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:14{{.}}[0m, {{.}}[0;33mline:15:3{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCaseStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:11:3{{.}}[0m, {{.}}[0;33mline:12:27{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mIntegerLiteral{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:11:8{{.}}[0m> {{.}}[0;32m'int'{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;1;36m 1{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;34m<<<NULL>>>{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mAttributedStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:12:5{{.}}[0m, {{.}}[0;33mcol:27{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;34mFallThroughAttr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:7{{.}}[0m, {{.}}[0;33mcol:14{{.}}[0m>){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mNullStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:27{{.}}[0m>))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCaseStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:13:3{{.}}[0m, {{.}}[0;33mline:14:5{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mIntegerLiteral{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:13:8{{.}}[0m> {{.}}[0;32m'int'{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;1;36m 2{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;34m<<<NULL>>>{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mNullStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:14:5{{.}}[0m>))))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mFullComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:8:4{{.}}[0m, {{.}}[0;33mcol:11{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mParagraphComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:4{{.}}[0m, {{.}}[0;33mcol:11{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:4{{.}}[0m, {{.}}[0;33mcol:11{{.}}[0m> Text=" Comment")))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mCXXRecordDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:18:1{{.}}[0m, {{.}}[0;33mline:25:1{{.}}[0m> class{{.}}[0;1;36m Mutex{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;34mLockableAttr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:18:22{{.}}[0m>){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mCXXRecordDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:1{{.}}[0m, {{.}}[0;33mcol:33{{.}}[0m> class{{.}}[0;1;36m Mutex{{.}}[0m){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mFieldDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:20:3{{.}}[0m, {{.}}[0;33mcol:7{{.}}[0m>{{.}}[0;1;36m var1{{.}}[0m {{.}}[0;32m'int'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mFullComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:19:6{{.}}[0m, {{.}}[0;33mcol:16{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mParagraphComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:6{{.}}[0m, {{.}}[0;33mcol:16{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:6{{.}}[0m, {{.}}[0;33mcol:16{{.}}[0m> Text=" A variable")))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mFieldDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:24:3{{.}}[0m, {{.}}[0;33mcol:7{{.}}[0m>{{.}}[0;1;36m var2{{.}}[0m {{.}}[0;32m'int'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mFullComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:21:6{{.}}[0m, {{.}}[0;33mline:23:44{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mParagraphComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:21:6{{.}}[0m, {{.}}[0;33mcol:22{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:6{{.}}[0m, {{.}}[0;33mcol:22{{.}}[0m> Text=" Another variable")){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mParagraphComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:23:6{{.}}[0m, {{.}}[0;33mcol:44{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;33mTextComment{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:6{{.}}[0m, {{.}}[0;33mcol:44{{.}}[0m> Text=" Like the other variable, but different")))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mCXXConstructorDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:18:33{{.}}[0m>{{.}}[0;1;36m Mutex{{.}}[0m {{.}}[0;32m'void (void)'{{.}}[0m inline{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCompoundStmt{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:33{{.}}[0m>)){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mCXXConstructorDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:33{{.}}[0m>{{.}}[0;1;36m Mutex{{.}}[0m {{.}}[0;32m'void (const class Mutex &)'{{.}}[0m inline{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mParmVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:33{{.}}[0m> {{.}}[0;32m'const class Mutex &'{{.}}[0m)){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mCXXConstructorDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:33{{.}}[0m>{{.}}[0;1;36m Mutex{{.}}[0m {{.}}[0;32m'void (class Mutex &&)'{{.}}[0m inline{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mParmVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:33{{.}}[0m> {{.}}[0;32m'class Mutex &&'{{.}}[0m))){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:1{{.}}[0m, {{.}}[0;33mline:25:3{{.}}[0m>{{.}}[0;1;36m mu1{{.}}[0m {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCXXConstructExpr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:3{{.}}[0m> {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;36m{{.}}[0m {{.}}[0;32m'void (void)'{{.}}[0m)){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:18:1{{.}}[0m, {{.}}[0;33mline:25:8{{.}}[0m>{{.}}[0;1;36m mu2{{.}}[0m {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mCXXConstructExpr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:8{{.}}[0m> {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m{{.}}[0;36m{{.}}[0m{{.}}[0;36m{{.}}[0m {{.}}[0;32m'void (void)'{{.}}[0m)){{$}} |
| //CHECK: {{^}} ({{.}}[0;1;32mVarDecl{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mline:26:1{{.}}[0m, {{.}}[0;33mcol:5{{.}}[0m>{{.}}[0;1;36m TestExpr{{.}}[0m {{.}}[0;32m'int'{{.}}[0m{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;34mGuardedByAttr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:29{{.}}[0m>{{$}} |
| //CHECK: {{^}} ({{.}}[0;1;35mDeclRefExpr{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m <{{.}}[0;33mcol:40{{.}}[0m> {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m{{.}}[0;36m lvalue{{.}}[0m{{.}}[0;36m{{.}}[0m {{.}}[0;1;32mVar{{.}}[0m{{.}}[0;33m 0x{{[0-9a-fA-F]*}}{{.}}[0m{{.}}[0;1;36m 'mu1'{{.}}[0m {{.}}[0;32m'class Mutex':'class Mutex'{{.}}[0m)))){{$}} |
| |