aboutsummaryrefslogtreecommitdiff
path: root/test/Misc
diff options
context:
space:
mode:
Diffstat (limited to 'test/Misc')
-rw-r--r--test/Misc/Inputs/module.modulemap1
-rw-r--r--test/Misc/ast-dump-arm-attr.c5
-rw-r--r--test/Misc/ast-dump-attr.cpp211
-rw-r--r--test/Misc/ast-dump-attr.m57
-rw-r--r--test/Misc/ast-dump-c-attr.c46
-rw-r--r--test/Misc/ast-dump-color.cpp103
-rw-r--r--test/Misc/ast-dump-comment.cpp77
-rw-r--r--test/Misc/ast-dump-decl.c168
-rw-r--r--test/Misc/ast-dump-decl.cpp541
-rw-r--r--test/Misc/ast-dump-decl.m145
-rw-r--r--test/Misc/ast-dump-decl.mm33
-rw-r--r--test/Misc/ast-dump-invalid.cpp64
-rw-r--r--test/Misc/ast-dump-lookups.cpp53
-rw-r--r--test/Misc/ast-dump-msp430-attr.c5
-rw-r--r--test/Misc/ast-dump-pipe.cl12
-rw-r--r--test/Misc/ast-dump-stmt.c67
-rw-r--r--test/Misc/ast-dump-stmt.cpp83
-rw-r--r--test/Misc/ast-dump-stmt.m36
-rw-r--r--test/Misc/ast-dump-templates.cpp69
-rw-r--r--test/Misc/ast-dump-wchar.cpp13
-rw-r--r--test/Misc/ast-print-bool.c44
-rw-r--r--test/Misc/ast-print-char-literal.cpp27
-rw-r--r--test/Misc/ast-print-enum-decl.c105
-rw-r--r--test/Misc/ast-print-objectivec.m62
-rw-r--r--test/Misc/ast-print-out-of-line-func.cpp95
-rw-r--r--test/Misc/ast-print-pragmas-xfail.cpp21
-rw-r--r--test/Misc/ast-print-pragmas.cpp68
-rw-r--r--test/Misc/ast-print-record-decl.c291
-rw-r--r--test/Misc/attr-print-emit.cpp69
-rw-r--r--test/Misc/backend-optimization-failure-nodbg.cpp2
-rw-r--r--test/Misc/backend-optimization-failure.cpp2
-rw-r--r--test/Misc/pragma-attribute-cxx-subject-match-rules.cpp169
-rw-r--r--test/Misc/pragma-attribute-objc-subject-match-rules.m113
-rw-r--r--test/Misc/pragma-attribute-supported-attributes-list.test67
-rw-r--r--test/Misc/target-invalid-cpu-note.c10
-rw-r--r--test/Misc/warning-flags.c4
36 files changed, 72 insertions, 2866 deletions
diff --git a/test/Misc/Inputs/module.modulemap b/test/Misc/Inputs/module.modulemap
deleted file mode 100644
index a8ecb09390a2..000000000000
--- a/test/Misc/Inputs/module.modulemap
+++ /dev/null
@@ -1 +0,0 @@
-module X {}
diff --git a/test/Misc/ast-dump-arm-attr.c b/test/Misc/ast-dump-arm-attr.c
deleted file mode 100644
index 41328165d210..000000000000
--- a/test/Misc/ast-dump-arm-attr.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %clang_cc1 -triple arm-apple-darwin -ast-dump -ast-dump-filter Test %s | FileCheck --strict-whitespace %s
-
-__attribute__((interrupt)) void Test(void);
-// CHECK: FunctionDecl{{.*}}Test
-// CHECK-NEXT: ARMInterruptAttr
diff --git a/test/Misc/ast-dump-attr.cpp b/test/Misc/ast-dump-attr.cpp
deleted file mode 100644
index 1e4eb7c31955..000000000000
--- a/test/Misc/ast-dump-attr.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations -ast-dump -ast-dump-filter Test %s | FileCheck --strict-whitespace %s
-
-int TestLocation
-__attribute__((unused));
-// CHECK: VarDecl{{.*}}TestLocation
-// CHECK-NEXT: UnusedAttr 0x{{[^ ]*}} <line:[[@LINE-2]]:16>
-
-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: <<<NULL>>>
-
-int TestAlignedExpr __attribute__((aligned(4)));
-// CHECK: VarDecl{{.*}}TestAlignedExpr
-// CHECK-NEXT: AlignedAttr {{.*}} aligned
-// 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: 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
-}
-
-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
-
-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<int*>(7);
- }
- }
-}
diff --git a/test/Misc/ast-dump-attr.m b/test/Misc/ast-dump-attr.m
deleted file mode 100644
index 8775d40d9985..000000000000
--- a/test/Misc/ast-dump-attr.m
+++ /dev/null
@@ -1,57 +0,0 @@
-// RUN: %clang_cc1 -fdouble-square-bracket-attributes -triple x86_64-apple-macosx10.10.0 -ast-dump -ast-dump-filter Test %s | FileCheck --strict-whitespace %s
-
-@interface NSObject
-@end
-
-[[clang::objc_exception]]
-@interface Test1 {
-// CHECK: ObjCInterfaceDecl{{.*}} Test1
-// CHECK-NEXT: ObjCExceptionAttr{{.*}}
- [[clang::iboutlet]] NSObject *Test2;
-// CHECK: ObjCIvarDecl{{.*}} Test2
-// CHECK-NEXT: IBOutletAttr
-}
-@property (readonly) [[clang::objc_returns_inner_pointer]] void *Test3, *Test4;
-// CHECK: ObjCPropertyDecl{{.*}} Test3 'void *' readonly
-// CHECK-NEXT: ObjCReturnsInnerPointerAttr
-// CHECK-NEXT: ObjCPropertyDecl{{.*}} Test4 'void *' readonly
-// CHECK-NEXT: ObjCReturnsInnerPointerAttr
-
-@property (readonly) [[clang::iboutlet]] NSObject *Test5;
-// CHECK: ObjCPropertyDecl{{.*}} Test5 'NSObject *' readonly
-// CHECK-NEXT: IBOutletAttr
-
-// CHECK: ObjCMethodDecl{{.*}} implicit{{.*}} Test3
-// CHECK-NEXT: ObjCReturnsInnerPointerAttr
-// CHECK: ObjCMethodDecl{{.*}} implicit{{.*}} Test4
-// CHECK-NEXT: ObjCReturnsInnerPointerAttr
-// CHECK: ObjCMethodDecl{{.*}} implicit{{.*}} Test5
-// CHECK-NOT: IBOutletAttr
-@end
-
-[[clang::objc_runtime_name("name")]] @protocol Test6;
-// CHECK: ObjCProtocolDecl{{.*}} Test6
-// CHECK-NEXT: ObjCRuntimeNameAttr{{.*}} "name"
-
-[[clang::objc_protocol_requires_explicit_implementation]]
-@protocol Test7
-// CHECK: ObjCProtocolDecl{{.*}} Test7
-// CHECK-NEXT: ObjCExplicitProtocolImplAttr
-@end
-
-@interface Test8
-// CHECK: ObjCInterfaceDecl{{.*}} Test8
--(void)Test9 [[clang::ns_consumes_self]];
-// CHECK: ObjCMethodDecl{{.*}} Test9 'void'
-// CHECK-NEXT: NSConsumesSelfAttr
--(void) [[clang::ns_consumes_self]] Test10: (int)Test11;
-// CHECK: ObjCMethodDecl{{.*}} Test10: 'void'
-// CHECK-NEXT: |-ParmVarDecl{{.*}} Test11 'int'
-// CHECK-NEXT: `-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-NEXT: |-ParmVarDecl{{.*}} Test14 'int'
-// CHECK-NEXT: `-NSConsumesSelfAttr
-@end
diff --git a/test/Misc/ast-dump-c-attr.c b/test/Misc/ast-dump-c-attr.c
deleted file mode 100644
index df9c347bb412..000000000000
--- a/test/Misc/ast-dump-c-attr.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-pc-linux -fdouble-square-bracket-attributes -Wno-deprecated-declarations -ast-dump -ast-dump-filter Test %s | FileCheck --strict-whitespace %s
-
-int Test1 [[deprecated]];
-// CHECK: VarDecl{{.*}}Test1
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:13> "" ""
-
-enum [[deprecated("Frobble")]] Test2 {
- Test3 [[deprecated]]
-};
-// CHECK: EnumDecl{{.*}}Test2
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:8, col:28> "Frobble" ""
-// CHECK-NEXT: EnumConstantDecl{{.*}}Test3
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:11> "" ""
-
-struct [[deprecated]] Test4 {
- [[deprecated("Frobble")]] int Test5, Test6;
- int Test7 [[deprecated]] : 12;
-};
-// CHECK: RecordDecl{{.*}}Test4
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:10> "" ""
-// CHECK-NEXT: FieldDecl{{.*}}Test5
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:5, col:25> "Frobble" ""
-// CHECK-NEXT: FieldDecl{{.*}}Test6
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:5, col:25> "Frobble" ""
-// CHECK-NEXT: FieldDecl{{.*}}Test7
-// CHECK-NEXT: IntegerLiteral{{.*}}'int' 12
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:15> "" ""
-
-struct [[deprecated]] Test8;
-// CHECK: RecordDecl{{.*}}Test8
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:10> "" ""
-
-[[deprecated]] void Test9(int Test10 [[deprecated]]);
-// CHECK: FunctionDecl{{.*}}Test9
-// CHECK-NEXT: ParmVarDecl{{.*}}Test10
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:40> "" ""
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:3> "" ""
-
-void Test11 [[deprecated]](void);
-// CHECK: FunctionDecl{{.*}}Test11
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:15> "" ""
-
-void Test12(void) [[deprecated]] {}
-// CHECK: FunctionDecl{{.*}}Test12
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} <col:21> "" ""
diff --git a/test/Misc/ast-dump-color.cpp b/test/Misc/ast-dump-color.cpp
deleted file mode 100644
index ad7ea3023a86..000000000000
--- a/test/Misc/ast-dump-color.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-// RUN: not %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)));
-
-struct Invalid {
- __attribute__((noinline)) Invalid(error);
-} Invalid;
-
-//CHECK: {{^}}[[GREEN:.\[0;1;32m]]TranslationUnitDecl[[RESET:.\[0m]][[Yellow:.\[0;33m]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]<invalid sloc>[[RESET]]> [[Yellow]]<invalid sloc>[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue:.\[0;34m]]|-[[RESET]][[GREEN]]TypedefDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]<invalid sloc>[[RESET]]> [[Yellow]]<invalid sloc>[[RESET]] implicit[[CYAN:.\[0;1;36m]] __int128_t[[RESET]] [[Green:.\[0;32m]]'__int128'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]TypedefDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]<invalid sloc>[[RESET]]> [[Yellow]]<invalid sloc>[[RESET]] implicit[[CYAN]] __uint128_t[[RESET]] [[Green]]'unsigned __int128'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]TypedefDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]<invalid sloc>[[RESET]]> [[Yellow]]<invalid sloc>[[RESET]] implicit[[CYAN]] __builtin_va_list[[RESET]] [[Green]]'__va_list_tag [1]'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]VarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]{{.*}}ast-dump-color.cpp:6:1[[RESET]], [[Yellow]]col:5[[RESET]]> [[Yellow]]col:5[[RESET]][[CYAN]] Test[[RESET]] [[Green]]'int'[[RESET]]
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[BLUE:.\[0;1;34m]]UnusedAttr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:25[[RESET]]> unused{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]FullComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:4:4[[RESET]], [[Yellow]]line:5:8[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]ParagraphComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:4:4[[RESET]], [[Yellow]]line:5:8[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:4:4[[RESET]]> Text=" "{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[Blue]]HTMLStartTagComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:5[[RESET]], [[Yellow]]col:7[[RESET]]> Name="a"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]], [[Yellow]]col:12[[RESET]]> Text="Hello"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[Blue]]HTMLEndTagComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:13[[RESET]], [[Yellow]]col:16[[RESET]]> Name="a"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:5:4[[RESET]]> Text=" "{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]HTMLStartTagComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:5[[RESET]], [[Yellow]]col:8[[RESET]]> Name="br" SelfClosing{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]FunctionDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:9:1[[RESET]], [[Yellow]]line:16:1[[RESET]]> [[Yellow]]line:9:6[[RESET]][[CYAN]] TestAttributedStmt[[RESET]] [[Green]]'void ()'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[MAGENTA:.\[0;1;35m]]CompoundStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:27[[RESET]], [[Yellow]]line:16:1[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]SwitchStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:10:3[[RESET]], [[Yellow]]line:15:3[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[Blue:.\[0;34m]]<<<NULL>>>[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[MAGENTA]]IntegerLiteral[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:10:11[[RESET]]> [[Green]]'int'[[RESET]][[Cyan:.\[0;36m]][[RESET]][[Cyan]][[RESET]][[CYAN]] 1[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]CompoundStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:14[[RESET]], [[Yellow]]line:15:3[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[MAGENTA]]CaseStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:11:3[[RESET]], [[Yellow]]line:12:27[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | | |-[[RESET]][[MAGENTA]]IntegerLiteral[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:11:8[[RESET]]> [[Green]]'int'[[RESET]][[Cyan]][[RESET]][[Cyan]][[RESET]][[CYAN]] 1[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | | |-[[RESET]][[Blue]]<<<NULL>>>[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | | `-[[RESET]][[MAGENTA]]AttributedStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:12:5[[RESET]], [[Yellow]]col:27[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | | |-[[RESET]][[BLUE]]FallThroughAttr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:7[[RESET]], [[Yellow]]col:14[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | | `-[[RESET]][[MAGENTA]]NullStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:27[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]CaseStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:13:3[[RESET]], [[Yellow]]line:14:5[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[MAGENTA]]IntegerLiteral[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:13:8[[RESET]]> [[Green]]'int'[[RESET]][[Cyan]][[RESET]][[Cyan]][[RESET]][[CYAN]] 2[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[Blue]]<<<NULL>>>[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]NullStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:14:5[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]FullComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:8:4[[RESET]], [[Yellow]]col:11[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]ParagraphComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:4[[RESET]], [[Yellow]]col:11[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:4[[RESET]], [[Yellow]]col:11[[RESET]]> Text=" Comment"{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]CXXRecordDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:18:1[[RESET]], [[Yellow]]line:25:1[[RESET]]> [[Yellow]]line:18:33[[RESET]] class[[CYAN]] Mutex[[RESET]] definition{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[BLUE]]CapabilityAttr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:22[[RESET]]> capability "mutex"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXRecordDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:1[[RESET]], [[Yellow]]col:33[[RESET]]> [[Yellow]]col:33[[RESET]] implicit class[[CYAN]] Mutex[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]FieldDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:20:3[[RESET]], [[Yellow]]col:7[[RESET]]> [[Yellow]]col:7[[RESET]][[CYAN]] var1[[RESET]] [[Green]]'int'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]FullComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:19:6[[RESET]], [[Yellow]]col:16[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]ParagraphComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:6[[RESET]], [[Yellow]]col:16[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:6[[RESET]], [[Yellow]]col:16[[RESET]]> Text=" A variable"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]FieldDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:24:3[[RESET]], [[Yellow]]col:7[[RESET]]> [[Yellow]]col:7[[RESET]][[CYAN]] var2[[RESET]] [[Green]]'int'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]FullComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:21:6[[RESET]], [[Yellow]]line:23:44[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[Blue]]ParagraphComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:21:6[[RESET]], [[Yellow]]col:22[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | | `-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:6[[RESET]], [[Yellow]]col:22[[RESET]]> Text=" Another variable"{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]ParagraphComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:23:6[[RESET]], [[Yellow]]col:44[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[Blue]]TextComment[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:6[[RESET]], [[Yellow]]col:44[[RESET]]> Text=" Like the other variable, but different"{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:18:33[[RESET]]> [[Yellow]]col:33[[RESET]] implicit used[[CYAN]] Mutex[[RESET]] [[Green]]'void () noexcept'[[RESET]] inline{{.*$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]CompoundStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:33[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:33[[RESET]]> [[Yellow]]col:33[[RESET]] implicit constexpr[[CYAN]] Mutex[[RESET]] [[Green]]'void (const Mutex &)'[[RESET]] inline{{ .*$}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[GREEN]]ParmVarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:33[[RESET]]> [[Yellow]]col:33[[RESET]] [[Green]]'const Mutex &'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:33[[RESET]]> [[Yellow]]col:33[[RESET]] implicit constexpr[[CYAN]] Mutex[[RESET]] [[Green]]'void (Mutex &&)'[[RESET]] inline{{ .*$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[GREEN]]ParmVarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:33[[RESET]]> [[Yellow]]col:33[[RESET]] [[Green]]'Mutex &&'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]VarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:1[[RESET]], [[Yellow]]line:25:3[[RESET]]> [[Yellow]]col:3[[RESET]] referenced[[CYAN]] mu1[[RESET]] [[Green]]'class Mutex':'Mutex'[[RESET]]
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[MAGENTA]]CXXConstructExpr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:3[[RESET]]> [[Green]]'class Mutex':'Mutex'[[RESET]][[Cyan]][[RESET]][[Cyan]][[RESET]] [[Green]]'void () noexcept'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]VarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:18:1[[RESET]], [[Yellow]]line:25:8[[RESET]]> [[Yellow]]col:8[[RESET]][[CYAN]] mu2[[RESET]] [[Green]]'class Mutex':'Mutex'[[RESET]]
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[MAGENTA]]CXXConstructExpr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]> [[Green]]'class Mutex':'Mutex'[[RESET]][[Cyan]][[RESET]][[Cyan]][[RESET]] [[Green]]'void () noexcept'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]VarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:26:1[[RESET]], [[Yellow]]col:5[[RESET]]> [[Yellow]]col:5[[RESET]][[CYAN]] TestExpr[[RESET]] [[Green]]'int'[[RESET]]
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[BLUE]]GuardedByAttr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:29[[RESET]], [[Yellow]]col:43[[RESET]]>{{$}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[MAGENTA]]DeclRefExpr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:40[[RESET]]> [[Green]]'class Mutex':'Mutex'[[RESET]][[Cyan]] lvalue[[RESET]][[Cyan]][[RESET]] [[GREEN]]Var[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]][[CYAN]] 'mu1'[[RESET]] [[Green]]'class Mutex':'Mutex'[[RESET]]{{$}}
-//CHECK: {{^}}[[Blue]]|-[[RESET]][[GREEN]]CXXRecordDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:28:1[[RESET]], [[Yellow]]line:30:1[[RESET]]> [[Yellow]]line:28:8[[RESET]] struct[[CYAN]] Invalid[[RESET]] definition
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXRecordDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:1[[RESET]], [[Yellow]]col:8[[RESET]]> [[Yellow]]col:8[[RESET]] implicit referenced struct[[CYAN]] Invalid[[RESET]]
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:29:3[[RESET]], [[Yellow]]col:42[[RESET]]> [[Yellow]]col:29[[RESET]] invalid[[CYAN]] Invalid[[RESET]] [[Green]]'void (int)'[[RESET]]
-//CHECK: {{^}}[[Blue]]| | |-[[RESET]][[GREEN]]ParmVarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:37[[RESET]], [[Yellow]]<invalid sloc>[[RESET]]> [[Yellow]]col:42[[RESET]] invalid [[Green]]'int'[[RESET]]
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[BLUE]]NoInlineAttr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:18[[RESET]]>
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]line:28:8[[RESET]]> [[Yellow]]col:8[[RESET]] implicit used constexpr[[CYAN]] Invalid[[RESET]] [[Green]]'void () noexcept'[[RESET]] inline
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[MAGENTA]]CompoundStmt[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]>
-//CHECK: {{^}}[[Blue]]| |-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]> [[Yellow]]col:8[[RESET]] implicit constexpr[[CYAN]] Invalid[[RESET]] [[Green]]'void (const Invalid &)'[[RESET]] inline default trivial noexcept-unevaluated 0x{{[0-9a-fA-F]*}}
-//CHECK: {{^}}[[Blue]]| | `-[[RESET]][[GREEN]]ParmVarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]> [[Yellow]]col:8[[RESET]] [[Green]]'const Invalid &'[[RESET]]
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[GREEN]]CXXConstructorDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]> [[Yellow]]col:8[[RESET]] implicit constexpr[[CYAN]] Invalid[[RESET]] [[Green]]'void (Invalid &&)'[[RESET]] inline default trivial noexcept-unevaluated 0x{{[0-9a-fA-F]*}}
-//CHECK: {{^}}[[Blue]]| `-[[RESET]][[GREEN]]ParmVarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:8[[RESET]]> [[Yellow]]col:8[[RESET]] [[Green]]'Invalid &&'[[RESET]]
-//CHECK: {{^}}[[Blue]]`-[[RESET]][[GREEN]]VarDecl[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:1[[RESET]], [[Yellow]]line:30:3[[RESET]]> [[Yellow]]col:3[[RESET]][[CYAN]] Invalid[[RESET]] [[Green]]'struct Invalid':'Invalid'[[RESET]]
-//CHECK: {{^}}[[Blue]] `-[[RESET]][[MAGENTA]]CXXConstructExpr[[RESET]][[Yellow]] 0x{{[0-9a-fA-F]*}}[[RESET]] <[[Yellow]]col:3[[RESET]]> [[Green]]'struct Invalid':'Invalid'[[RESET]][[Cyan]][[RESET]][[Cyan]][[RESET]] [[Green]]'void () noexcept'[[RESET]]
diff --git a/test/Misc/ast-dump-comment.cpp b/test/Misc/ast-dump-comment.cpp
deleted file mode 100644
index 5bd6934d80cf..000000000000
--- a/test/Misc/ast-dump-comment.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// RUN: %clang_cc1 -Wdocumentation -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-/// Aaa
-int TestLocation;
-// CHECK: VarDecl{{.*}}TestLocation
-// CHECK-NEXT: FullComment 0x{{[^ ]*}} <line:[[@LINE-3]]:4, col:7>
-
-///
-int TestIndent;
-// CHECK: {{^VarDecl.*TestIndent[^()]*$}}
-// CHECK-NEXT: {{^`-FullComment.*>$}}
-
-/// Aaa
-int Test_TextComment;
-// CHECK: VarDecl{{.*}}Test_TextComment
-// CHECK-NEXT: FullComment
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" Aaa"
-
-/// \brief Aaa
-int Test_BlockCommandComment;
-// CHECK: VarDecl{{.*}}Test_BlockCommandComment
-// CHECK: BlockCommandComment{{.*}} Name="brief"
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" Aaa"
-
-/// \param Aaa xxx
-/// \param [in,out] Bbb yyy
-void Test_ParamCommandComment(int Aaa, int Bbb);
-// CHECK: FunctionDecl{{.*}}Test_ParamCommandComment
-// CHECK: ParamCommandComment{{.*}} [in] implicitly Param="Aaa" ParamIndex=0
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" xxx"
-// CHECK: ParamCommandComment{{.*}} [in,out] explicitly Param="Bbb" ParamIndex=1
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" yyy"
-
-/// \tparam Aaa xxx
-template <typename Aaa> class Test_TParamCommandComment;
-// CHECK: ClassTemplateDecl{{.*}}Test_TParamCommandComment
-// CHECK: TParamCommandComment{{.*}} Param="Aaa" Position=<0>
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" xxx"
-
-/// \c Aaa
-int Test_InlineCommandComment;
-// CHECK: VarDecl{{.*}}Test_InlineCommandComment
-// CHECK: InlineCommandComment{{.*}} Name="c" RenderMonospaced Arg[0]="Aaa"
-
-/// <a>Aaa</a>
-/// <br/>
-int Test_HTMLTagComment;
-// CHECK: VarDecl{{.*}}Test_HTMLTagComment
-// CHECK-NEXT: FullComment
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" "
-// CHECK-NEXT: HTMLStartTagComment{{.*}} Name="a"
-// CHECK-NEXT: TextComment{{.*}} Text="Aaa"
-// CHECK-NEXT: HTMLEndTagComment{{.*}} Name="a"
-// CHECK-NEXT: TextComment{{.*}} Text=" "
-// CHECK-NEXT: HTMLStartTagComment{{.*}} Name="br" SelfClosing
-
-/// \verbatim
-/// Aaa
-/// \endverbatim
-int Test_VerbatimBlockComment;
-// CHECK: VarDecl{{.*}}Test_VerbatimBlockComment
-// CHECK: VerbatimBlockComment{{.*}} Name="verbatim" CloseName="endverbatim"
-// CHECK-NEXT: VerbatimBlockLineComment{{.*}} Text=" Aaa"
-
-/// \param ... More arguments
-template<typename T>
-void Test_TemplatedFunctionVariadic(int arg, ...);
-// CHECK: FunctionTemplateDecl{{.*}}Test_TemplatedFunctionVariadic
-// CHECK: ParamCommandComment{{.*}} [in] implicitly Param="..."
-// CHECK-NEXT: ParagraphComment
-// CHECK-NEXT: TextComment{{.*}} Text=" More arguments"
diff --git a/test/Misc/ast-dump-decl.c b/test/Misc/ast-dump-decl.c
deleted file mode 100644
index 71b98c9443cf..000000000000
--- a/test/Misc/ast-dump-decl.c
+++ /dev/null
@@ -1,168 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump %s | FileCheck -check-prefix CHECK-TU -strict-whitespace %s
-// RUN: %clang_cc1 -fmodules -fmodules-local-submodule-visibility -fmodule-name=X -triple x86_64-unknown-unknown -fmodule-map-file=%S/Inputs/module.modulemap -ast-dump -ast-dump-filter Test %s -DMODULES | FileCheck -check-prefix CHECK -check-prefix CHECK-MODULES -strict-whitespace %s
-
-int TestLocation;
-// CHECK: VarDecl 0x{{[^ ]*}} <{{.*}}:[[@LINE-1]]:1, col:5> col:5 TestLocation
-
-#ifdef MODULES
-#pragma clang module begin X
-#endif
-
-struct TestIndent {
- int x;
-};
-// CHECK: {{^}}RecordDecl{{.*TestIndent[^()]*$}}
-// CHECK-NEXT: {{^}}`-FieldDecl{{.*x[^()]*$}}
-
-struct TestChildren {
- int x;
- struct y {
- int z;
- };
-};
-// CHECK: RecordDecl{{.*}}TestChildren
-// CHECK-NEXT: FieldDecl{{.*}}x
-// CHECK-NEXT: RecordDecl{{.*}}y
-// CHECK-NEXT: FieldDecl{{.*}}z
-
-// CHECK-TU: TranslationUnitDecl
-
-void testLabelDecl() {
- __label__ TestLabelDecl;
- TestLabelDecl: goto TestLabelDecl;
-}
-// CHECK: LabelDecl{{.*}} TestLabelDecl
-
-typedef int TestTypedefDecl;
-// CHECK: TypedefDecl{{.*}} TestTypedefDecl 'int'
-
-__module_private__ typedef int TestTypedefDeclPrivate;
-// CHECK-MODULE: TypedefDecl{{.*}} TestTypedefDeclPrivate 'int' __module_private__
-
-enum TestEnumDecl {
- testEnumDecl
-};
-// CHECK: EnumDecl{{.*}} TestEnumDecl
-// CHECK-NEXT: EnumConstantDecl{{.*}} testEnumDecl
-
-struct TestEnumDeclAnon {
- enum {
- testEnumDeclAnon
- } e;
-};
-// CHECK: RecordDecl{{.*}} TestEnumDeclAnon
-// CHECK-NEXT: EnumDecl{{.*> .*$}}
-
-enum TestEnumDeclForward;
-// CHECK: EnumDecl{{.*}} TestEnumDeclForward
-
-__module_private__ enum TestEnumDeclPrivate;
-// CHECK-MODULE: EnumDecl{{.*}} TestEnumDeclPrivate __module_private__
-
-struct TestRecordDecl {
- int i;
-};
-// CHECK: RecordDecl{{.*}} struct TestRecordDecl
-// CHECK-NEXT: FieldDecl
-
-struct TestRecordDeclEmpty {
-};
-// CHECK: RecordDecl{{.*}} struct TestRecordDeclEmpty
-
-struct TestRecordDeclAnon1 {
- struct {
- } testRecordDeclAnon1;
-};
-// CHECK: RecordDecl{{.*}} struct TestRecordDeclAnon1
-// CHECK-NEXT: RecordDecl{{.*}} struct
-
-struct TestRecordDeclAnon2 {
- struct {
- };
-};
-// CHECK: RecordDecl{{.*}} struct TestRecordDeclAnon2
-// CHECK-NEXT: RecordDecl{{.*}} struct
-
-struct TestRecordDeclForward;
-// CHECK: RecordDecl{{.*}} struct TestRecordDeclForward
-
-__module_private__ struct TestRecordDeclPrivate;
-// CHECK-MODULE: RecordDecl{{.*}} struct TestRecordDeclPrivate __module_private__
-
-enum testEnumConstantDecl {
- TestEnumConstantDecl,
- TestEnumConstantDeclInit = 1
-};
-// CHECK: EnumConstantDecl{{.*}} TestEnumConstantDecl 'int'
-// CHECK: EnumConstantDecl{{.*}} TestEnumConstantDeclInit 'int'
-// CHECK-NEXT: IntegerLiteral
-
-struct testIndirectFieldDecl {
- struct {
- int TestIndirectFieldDecl;
- };
-};
-// CHECK: IndirectFieldDecl{{.*}} TestIndirectFieldDecl 'int'
-// CHECK-NEXT: Field{{.*}} ''
-// CHECK-NEXT: Field{{.*}} 'TestIndirectFieldDecl'
-
-// FIXME: It would be nice to dump the enum and its enumerators.
-int TestFunctionDecl(int x, enum { e } y) {
- return x;
-}
-// CHECK: FunctionDecl{{.*}} TestFunctionDecl 'int (int, enum {{.*}})'
-// CHECK-NEXT: ParmVarDecl{{.*}} x
-// CHECK-NEXT: ParmVarDecl{{.*}} y
-// CHECK-NEXT: 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
-
-
-int TestFunctionDeclProto(int x);
-// CHECK: FunctionDecl{{.*}} TestFunctionDeclProto 'int (int)'
-// CHECK-NEXT: ParmVarDecl{{.*}} x
-
-extern int TestFunctionDeclSC();
-// CHECK: FunctionDecl{{.*}} TestFunctionDeclSC 'int ()' extern
-
-inline int TestFunctionDeclInline();
-// CHECK: FunctionDecl{{.*}} TestFunctionDeclInline 'int ()' inline
-
-struct testFieldDecl {
- int TestFieldDecl;
- int TestFieldDeclWidth : 1;
- __module_private__ int TestFieldDeclPrivate;
-};
-// CHECK: FieldDecl{{.*}} TestFieldDecl 'int'
-// CHECK: FieldDecl{{.*}} TestFieldDeclWidth 'int'
-// CHECK-NEXT: IntegerLiteral
-// CHECK-MODULE: FieldDecl{{.*}} TestFieldDeclPrivate 'int' __module_private__
-
-int TestVarDecl;
-// CHECK: VarDecl{{.*}} TestVarDecl 'int'
-
-extern int TestVarDeclSC;
-// CHECK: VarDecl{{.*}} TestVarDeclSC 'int' extern
-
-__thread int TestVarDeclThread;
-// CHECK: VarDecl{{.*}} TestVarDeclThread 'int' tls{{$}}
-
-__module_private__ int TestVarDeclPrivate;
-// CHECK-MODULE: VarDecl{{.*}} TestVarDeclPrivate 'int' __module_private__
-
-int TestVarDeclInit = 0;
-// CHECK: VarDecl{{.*}} TestVarDeclInit 'int'
-// CHECK-NEXT: IntegerLiteral
-
-void testParmVarDecl(int TestParmVarDecl);
-// CHECK: ParmVarDecl{{.*}} TestParmVarDecl 'int'
-
-#ifdef MODULES
-#pragma clang module end
-#endif
-
diff --git a/test/Misc/ast-dump-decl.cpp b/test/Misc/ast-dump-decl.cpp
deleted file mode 100644
index 21ba7ec8dad2..000000000000
--- a/test/Misc/ast-dump-decl.cpp
+++ /dev/null
@@ -1,541 +0,0 @@
-// RUN: %clang_cc1 -std=c++11 -triple x86_64-linux-gnu -fms-extensions -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-class testEnumDecl {
- enum class TestEnumDeclScoped;
- enum TestEnumDeclFixed : int;
-};
-// CHECK: EnumDecl{{.*}} class TestEnumDeclScoped 'int'
-// CHECK: EnumDecl{{.*}} TestEnumDeclFixed 'int'
-
-class testFieldDecl {
- int TestFieldDeclInit = 0;
-};
-// CHECK: FieldDecl{{.*}} TestFieldDeclInit 'int'
-// CHECK-NEXT: IntegerLiteral
-
-namespace testVarDeclNRVO {
- class A { };
- A foo() {
- A TestVarDeclNRVO;
- return TestVarDeclNRVO;
- }
-}
-// CHECK: VarDecl{{.*}} TestVarDeclNRVO 'testVarDeclNRVO::A' nrvo
-
-void testParmVarDeclInit(int TestParmVarDeclInit = 0);
-// CHECK: ParmVarDecl{{.*}} TestParmVarDeclInit 'int'
-// CHECK-NEXT: IntegerLiteral{{.*}}
-
-namespace TestNamespaceDecl {
- int i;
-}
-// CHECK: NamespaceDecl{{.*}} TestNamespaceDecl
-// CHECK-NEXT: VarDecl
-
-namespace TestNamespaceDecl {
- int j;
-}
-// CHECK: NamespaceDecl{{.*}} TestNamespaceDecl
-// CHECK-NEXT: original Namespace
-// CHECK-NEXT: VarDecl
-
-inline namespace TestNamespaceDeclInline {
-}
-// CHECK: NamespaceDecl{{.*}} TestNamespaceDeclInline inline
-
-namespace testUsingDirectiveDecl {
- namespace A {
- }
-}
-namespace TestUsingDirectiveDecl {
- using namespace testUsingDirectiveDecl::A;
-}
-// CHECK: NamespaceDecl{{.*}} TestUsingDirectiveDecl
-// CHECK-NEXT: UsingDirectiveDecl{{.*}} Namespace{{.*}} 'A'
-
-namespace testNamespaceAlias {
- namespace A {
- }
-}
-namespace TestNamespaceAlias = testNamespaceAlias::A;
-// CHECK: NamespaceAliasDecl{{.*}} TestNamespaceAlias
-// CHECK-NEXT: Namespace{{.*}} 'A'
-
-using TestTypeAliasDecl = int;
-// CHECK: TypeAliasDecl{{.*}} TestTypeAliasDecl 'int'
-
-namespace testTypeAliasTemplateDecl {
- template<typename T> class A;
- template<typename T> using TestTypeAliasTemplateDecl = A<T>;
-}
-// CHECK: TypeAliasTemplateDecl{{.*}} TestTypeAliasTemplateDecl
-// CHECK-NEXT: TemplateTypeParmDecl
-// CHECK-NEXT: TypeAliasDecl{{.*}} TestTypeAliasTemplateDecl 'A<T>'
-
-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 trivial has_const_param
-// CHECK-NEXT: MoveAssignment exists simple trivial
-// CHECK-NEXT: Destructor simple irrelevant trivial
-
- class A { };
- class B { };
- class TestCXXRecordDecl : virtual A, public B {
- int i;
- };
-}
-// 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 non_trivial has_const_param
-// CHECK-NEXT: MoveAssignment exists simple non_trivial
-// CHECK-NEXT: Destructor simple irrelevant trivial
-// CHECK-NEXT: virtual private 'testCXXRecordDecl::A'
-// CHECK-NEXT: public 'testCXXRecordDecl::B'
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestCXXRecordDecl
-// CHECK-NEXT: FieldDecl
-
-template<class...T>
-class TestCXXRecordDeclPack : public T... {
-};
-// CHECK: CXXRecordDecl{{.*}} class TestCXXRecordDeclPack
-// CHECK: public 'T'...
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestCXXRecordDeclPack
-
-thread_local int TestThreadLocalInt;
-// CHECK: TestThreadLocalInt {{.*}} tls_dynamic
-
-class testCXXMethodDecl {
- virtual void TestCXXMethodDeclPure() = 0;
- void TestCXXMethodDeclDelete() = delete;
- void TestCXXMethodDeclThrow() throw();
- void TestCXXMethodDeclThrowType() throw(int);
-};
-// CHECK: CXXMethodDecl{{.*}} TestCXXMethodDeclPure 'void ()' virtual pure
-// CHECK: CXXMethodDecl{{.*}} TestCXXMethodDeclDelete 'void ()' delete
-// CHECK: CXXMethodDecl{{.*}} TestCXXMethodDeclThrow 'void () throw()'
-// CHECK: CXXMethodDecl{{.*}} TestCXXMethodDeclThrowType 'void () throw(int)'
-
-namespace testCXXConstructorDecl {
- class A { };
- class TestCXXConstructorDecl : public A {
- int I;
- TestCXXConstructorDecl(A &a, int i) : A(a), I(i) { }
- TestCXXConstructorDecl(A &a) : TestCXXConstructorDecl(a, 0) { }
- };
-}
-// CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}'
-// CHECK-NEXT: ParmVarDecl{{.*}} a
-// CHECK-NEXT: ParmVarDecl{{.*}} i
-// CHECK-NEXT: CXXCtorInitializer{{.*}}A
-// CHECK-NEXT: Expr
-// CHECK: CXXCtorInitializer{{.*}}I
-// CHECK-NEXT: Expr
-// CHECK: CompoundStmt
-// CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}'
-// CHECK-NEXT: ParmVarDecl{{.*}} a
-// CHECK-NEXT: CXXCtorInitializer{{.*}}TestCXXConstructorDecl
-// CHECK-NEXT: CXXConstructExpr{{.*}}TestCXXConstructorDecl
-
-class TestCXXDestructorDecl {
- ~TestCXXDestructorDecl() { }
-};
-// CHECK: CXXDestructorDecl{{.*}} ~TestCXXDestructorDecl 'void () noexcept'
-// CHECK-NEXT: CompoundStmt
-
-// Test that the range of a defaulted members is computed correctly.
-class TestMemberRanges {
-public:
- TestMemberRanges() = default;
- TestMemberRanges(const TestMemberRanges &Other) = default;
- TestMemberRanges(TestMemberRanges &&Other) = default;
- ~TestMemberRanges() = default;
- TestMemberRanges &operator=(const TestMemberRanges &Other) = default;
- TestMemberRanges &operator=(TestMemberRanges &&Other) = default;
-};
-void SomeFunction() {
- TestMemberRanges A;
- TestMemberRanges B(A);
- B = A;
- A = static_cast<TestMemberRanges &&>(B);
- TestMemberRanges C(static_cast<TestMemberRanges &&>(A));
-}
-// CHECK: CXXConstructorDecl{{.*}} <line:{{.*}}:3, col:30>
-// CHECK: CXXConstructorDecl{{.*}} <line:{{.*}}:3, col:59>
-// CHECK: CXXConstructorDecl{{.*}} <line:{{.*}}:3, col:54>
-// CHECK: CXXDestructorDecl{{.*}} <line:{{.*}}:3, col:31>
-// CHECK: CXXMethodDecl{{.*}} <line:{{.*}}:3, col:70>
-// CHECK: CXXMethodDecl{{.*}} <line:{{.*}}:3, col:65>
-
-class TestCXXConversionDecl {
- operator int() { return 0; }
-};
-// CHECK: CXXConversionDecl{{.*}} operator int 'int ()'
-// CHECK-NEXT: CompoundStmt
-
-namespace TestStaticAssertDecl {
- static_assert(true, "msg");
-}
-// CHECK: NamespaceDecl{{.*}} TestStaticAssertDecl
-// CHECK-NEXT: StaticAssertDecl{{.*> .*$}}
-// CHECK-NEXT: CXXBoolLiteralExpr
-// CHECK-NEXT: StringLiteral
-
-namespace testFunctionTemplateDecl {
- class A { };
- class B { };
- class C { };
- class D { };
- template<typename T> void TestFunctionTemplate(T) { }
-
- // implicit instantiation
- void bar(A a) { TestFunctionTemplate(a); }
-
- // explicit specialization
- template<> void TestFunctionTemplate(B);
-
- // explicit instantiation declaration
- extern template void TestFunctionTemplate(C);
-
- // explicit instantiation definition
- template void TestFunctionTemplate(D);
-}
-// CHECK: FunctionTemplateDecl{{.*}} TestFunctionTemplate
-// CHECK-NEXT: TemplateTypeParmDecl
-// CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate 'void (T)'
-// CHECK-NEXT: ParmVarDecl{{.*}} 'T'
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate {{.*}}A
-// CHECK-NEXT: TemplateArgument
-// CHECK-NEXT: ParmVarDecl
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: Function{{.*}} 'TestFunctionTemplate' {{.*}}B
-// CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate {{.*}}C
-// CHECK-NEXT: TemplateArgument
-// CHECK-NEXT: ParmVarDecl
-// CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate {{.*}}D
-// CHECK-NEXT: TemplateArgument
-// CHECK-NEXT: ParmVarDecl
-// CHECK-NEXT: CompoundStmt
-// CHECK: FunctionDecl{{.*}} TestFunctionTemplate {{.*}}B
-// CHECK-NEXT: TemplateArgument
-// CHECK-NEXT: ParmVarDecl
-
-namespace testClassTemplateDecl {
- class A { };
- class B { };
- class C { };
- class D { };
-
- template<typename T> class TestClassTemplate {
- public:
- TestClassTemplate();
- ~TestClassTemplate();
- int j();
- int i;
- };
-
- // implicit instantiation
- TestClassTemplate<A> a;
-
- // explicit specialization
- template<> class TestClassTemplate<B> {
- int j;
- };
-
- // explicit instantiation declaration
- extern template class TestClassTemplate<C>;
-
- // explicit instantiation definition
- template class TestClassTemplate<D>;
-
- // partial explicit specialization
- template<typename T1, typename T2> class TestClassTemplatePartial {
- int i;
- };
- template<typename T1> class TestClassTemplatePartial<T1, A> {
- int j;
- };
-}
-// CHECK: ClassTemplateDecl{{.*}} TestClassTemplate
-// CHECK-NEXT: TemplateTypeParmDecl
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: AccessSpecDecl{{.*}} public
-// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23>
-// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24>
-// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11>
-// CHECK-NEXT: FieldDecl{{.*}} i
-// CHECK-NEXT: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate
-// CHECK: TemplateArgument{{.*}}A
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: AccessSpecDecl{{.*}} public
-// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23>
-// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24>
-// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11>
-// CHECK-NEXT: FieldDecl{{.*}} i
-// CHECK: ClassTemplateSpecialization{{.*}} 'TestClassTemplate'
-// CHECK-NEXT: ClassTemplateSpecialization{{.*}} 'TestClassTemplate'
-// CHECK-NEXT: ClassTemplateSpecialization{{.*}} 'TestClassTemplate'
-
-// CHECK: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: DefinitionData
-// CHECK: TemplateArgument{{.*}}B
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: FieldDecl{{.*}} j
-
-// CHECK: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate
-// CHECK: TemplateArgument{{.*}}C
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: AccessSpecDecl{{.*}} public
-// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23>
-// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24>
-// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11>
-// CHECK-NEXT: FieldDecl{{.*}} i
-
-// CHECK: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate
-// CHECK: TemplateArgument{{.*}}D
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-// CHECK-NEXT: AccessSpecDecl{{.*}} public
-// CHECK-NEXT: CXXConstructorDecl{{.*}} <line:{{.*}}:5, col:23>
-// CHECK-NEXT: CXXDestructorDecl{{.*}} <line:{{.*}}:5, col:24>
-// CHECK-NEXT: CXXMethodDecl{{.*}} <line:{{.*}}:5, col:11>
-// CHECK-NEXT: FieldDecl{{.*}} i
-
-// CHECK: ClassTemplatePartialSpecializationDecl{{.*}} class TestClassTemplatePartial
-// CHECK: TemplateArgument
-// CHECK-NEXT: TemplateArgument{{.*}}A
-// CHECK-NEXT: TemplateTypeParmDecl
-// CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplatePartial
-// CHECK-NEXT: FieldDecl{{.*}} j
-
-// PR15220 dump instantiation only once
-namespace testCanonicalTemplate {
- class A {};
-
- template<typename T> void TestFunctionTemplate(T);
- template<typename T> void TestFunctionTemplate(T);
- void bar(A a) { TestFunctionTemplate(a); }
- // CHECK: FunctionTemplateDecl{{.*}} TestFunctionTemplate
- // CHECK-NEXT: TemplateTypeParmDecl
- // CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate 'void (T)'
- // CHECK-NEXT: ParmVarDecl{{.*}} 'T'
- // CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate {{.*}}A
- // CHECK-NEXT: TemplateArgument
- // CHECK-NEXT: ParmVarDecl
- // CHECK: FunctionTemplateDecl{{.*}} TestFunctionTemplate
- // CHECK-NEXT: TemplateTypeParmDecl
- // CHECK-NEXT: FunctionDecl{{.*}} TestFunctionTemplate 'void (T)'
- // CHECK-NEXT: ParmVarDecl{{.*}} 'T'
- // CHECK-NEXT: Function{{.*}} 'TestFunctionTemplate'
- // CHECK-NOT: TemplateArgument
-
- template<typename T1> class TestClassTemplate {
- template<typename T2> friend class TestClassTemplate;
- };
- TestClassTemplate<A> a;
- // CHECK: ClassTemplateDecl{{.*}} TestClassTemplate
- // CHECK-NEXT: TemplateTypeParmDecl
- // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
- // CHECK: CXXRecordDecl{{.*}} class TestClassTemplate
- // CHECK-NEXT: FriendDecl
- // CHECK-NEXT: ClassTemplateDecl{{.*}} TestClassTemplate
- // CHECK-NEXT: TemplateTypeParmDecl
- // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
- // CHECK-NEXT: ClassTemplateSpecializationDecl{{.*}} class TestClassTemplate
- // CHECK: TemplateArgument{{.*}}A
- // CHECK-NEXT: CXXRecordDecl{{.*}} class TestClassTemplate
-}
-
-template <class T>
-class TestClassScopeFunctionSpecialization {
- template<class U> void foo(U a) { }
- template<> void foo<int>(int a) { }
-};
-// CHECK: ClassScopeFunctionSpecializationDecl
-// CHECK-NEXT: CXXMethod{{.*}} foo 'void (int)'
-// CHECK-NEXT: ParmVarDecl
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: TemplateArgument{{.*}} 'int'
-
-namespace TestTemplateTypeParmDecl {
- template<typename ... T, class U = int> 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'
-
-namespace TestNonTypeTemplateParmDecl {
- template<int I = 1, int ... J> 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
-
-namespace TestTemplateTemplateParmDecl {
- template<typename T> class A;
- template <template <typename> class T = A, template <typename> class ... U> void foo();
-}
-// CHECK: NamespaceDecl{{.*}} TestTemplateTemplateParmDecl
-// CHECK: FunctionTemplateDecl
-// CHECK-NEXT: TemplateTemplateParmDecl{{.*}} T
-// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename
-// CHECK-NEXT: TemplateArgument{{.*}} template A
-// CHECK-NEXT: TemplateTemplateParmDecl{{.*}} ... U
-// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename
-
-namespace TestTemplateArgument {
- template<typename> class A { };
- template<template<typename> class ...> class B { };
- int foo();
-
- template<typename> class testType { };
- template class testType<int>;
- // CHECK: ClassTemplateSpecializationDecl{{.*}} class testType
- // CHECK: TemplateArgument{{.*}} type 'int'
-
- template<int fp(void)> class testDecl { };
- template class testDecl<foo>;
- // CHECK: ClassTemplateSpecializationDecl{{.*}} class testDecl
- // CHECK: TemplateArgument{{.*}} decl
- // CHECK-NEXT: Function{{.*}}foo
-
- template class testDecl<nullptr>;
- // CHECK: ClassTemplateSpecializationDecl{{.*}} class testDecl
- // CHECK: TemplateArgument{{.*}} nullptr
-
- template<int> class testIntegral { };
- template class testIntegral<1>;
- // CHECK: ClassTemplateSpecializationDecl{{.*}} class testIntegral
- // CHECK: TemplateArgument{{.*}} integral 1
-
- template<template<typename> class> class testTemplate { };
- template class testTemplate<A>;
- // CHECK: ClassTemplateSpecializationDecl{{.*}} class testTemplate
- // CHECK: TemplateArgument{{.*}} A
-
- template<template<typename> class ...T> class C {
- B<T...> testTemplateExpansion;
- };
- // FIXME: Need TemplateSpecializationType dumping to test TemplateExpansion.
-
- template<int, int = 0> class testExpr;
- template<int I> class testExpr<I> { };
- // CHECK: ClassTemplatePartialSpecializationDecl{{.*}} class testExpr
- // CHECK: TemplateArgument{{.*}} expr
- // CHECK-NEXT: DeclRefExpr{{.*}}I
-
- template<int, int ...> 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
-}
-
-namespace testUsingDecl {
- int i;
-}
-namespace TestUsingDecl {
- using testUsingDecl::i;
-}
-// CHECK: NamespaceDecl{{.*}} TestUsingDecl
-// CHECK-NEXT: UsingDecl{{.*}} testUsingDecl::i
-// CHECK-NEXT: UsingShadowDecl{{.*}} Var{{.*}} 'i' 'int'
-
-namespace testUnresolvedUsing {
- class A { };
- template<class T> class B {
- public:
- A a;
- };
- template<class T> class TestUnresolvedUsing : public B<T> {
- using typename B<T>::a;
- using B<T>::a;
- };
-}
-// CHECK: CXXRecordDecl{{.*}} TestUnresolvedUsing
-// CHECK: UnresolvedUsingTypenameDecl{{.*}} B<T>::a
-// CHECK: UnresolvedUsingValueDecl{{.*}} B<T>::a
-
-namespace TestLinkageSpecDecl {
- extern "C" void test1();
- extern "C++" void test2();
-}
-// CHECK: NamespaceDecl{{.*}} TestLinkageSpecDecl
-// CHECK-NEXT: LinkageSpecDecl{{.*}} C
-// CHECK-NEXT: FunctionDecl
-// CHECK-NEXT: LinkageSpecDecl{{.*}} C++
-// CHECK-NEXT: FunctionDecl
-
-class TestAccessSpecDecl {
-public:
-private:
-protected:
-};
-// CHECK: CXXRecordDecl{{.*}} class TestAccessSpecDecl
-// CHECK: CXXRecordDecl{{.*}} class TestAccessSpecDecl
-// CHECK-NEXT: AccessSpecDecl{{.*}} public
-// CHECK-NEXT: AccessSpecDecl{{.*}} private
-// CHECK-NEXT: AccessSpecDecl{{.*}} protected
-
-template<typename T> class TestFriendDecl {
- friend int foo();
- friend class A;
- friend T;
-};
-// CHECK: CXXRecord{{.*}} TestFriendDecl
-// CHECK: CXXRecord{{.*}} TestFriendDecl
-// CHECK-NEXT: FriendDecl
-// CHECK-NEXT: FunctionDecl{{.*}} foo
-// CHECK-NEXT: FriendDecl{{.*}} 'class A':'A'
-// CHECK-NEXT: FriendDecl{{.*}} 'T'
-
-namespace TestFileScopeAsmDecl {
- asm("ret");
-}
-// CHECK: NamespaceDecl{{.*}} TestFileScopeAsmDecl{{$}}
-// CHECK: FileScopeAsmDecl{{.*> .*$}}
-// CHECK-NEXT: StringLiteral
-
-namespace TestFriendDecl2 {
- void f();
- struct S {
- friend void f();
- };
-}
-// CHECK: NamespaceDecl [[TestFriendDecl2:0x.*]] <{{.*}}> {{.*}} TestFriendDecl2
-// CHECK: |-FunctionDecl [[TestFriendDecl2_f:0x.*]] <{{.*}}> {{.*}} f 'void ()'
-// CHECK: `-CXXRecordDecl {{.*}} struct S
-// CHECK: |-CXXRecordDecl {{.*}} struct S
-// CHECK: `-FriendDecl
-// CHECK: `-FunctionDecl {{.*}} parent [[TestFriendDecl2]] prev [[TestFriendDecl2_f]] <{{.*}}> {{.*}} f 'void ()'
-
-namespace Comment {
- extern int Test;
- /// Something here.
- extern int Test;
- extern int Test;
-}
-
-// CHECK: VarDecl {{.*}} Test 'int' extern
-// CHECK-NOT: FullComment
-// CHECK: VarDecl {{.*}} Test 'int' extern
-// CHECK: `-FullComment
-// CHECK: `-ParagraphComment
-// CHECK: `-TextComment
-// CHECK: VarDecl {{.*}} Test 'int' extern
-// CHECK-NOT: FullComment
diff --git a/test/Misc/ast-dump-decl.m b/test/Misc/ast-dump-decl.m
deleted file mode 100644
index 4cfb8aa0c41d..000000000000
--- a/test/Misc/ast-dump-decl.m
+++ /dev/null
@@ -1,145 +0,0 @@
-// RUN: %clang_cc1 -Wno-unused -fblocks -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %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
-// CHECK: ObjCImplementationDecl{{.*}} TestObjCIvarDecl
-// CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCIvarDecl'
-// CHECK-NEXT: ObjCIvarDecl{{.*}} varDefault 'int' private
-// CHECK-NEXT: ObjCIvarDecl{{.*}} varPrivate 'int' private
-// CHECK-NEXT: ObjCIvarDecl{{.*}} varProtected 'int' protected
-// CHECK-NEXT: ObjCIvarDecl{{.*}} varPublic 'int' public
-// CHECK-NEXT: ObjCIvarDecl{{.*}} varPackage 'int' package
-
-@interface testObjCMethodDecl : A {
-}
-- (int) TestObjCMethodDecl: (int)i, ...;
-// CHECK: ObjCMethodDecl{{.*}} - TestObjCMethodDecl: 'int'
-// CHECK-NEXT: ParmVarDecl{{.*}} i 'int'
-// CHECK-NEXT: ...
-@end
-
-@implementation testObjCMethodDecl
-- (int) TestObjCMethodDecl: (int)i, ... {
- return 0;
-}
-// CHECK: ObjCMethodDecl{{.*}} - TestObjCMethodDecl: 'int'
-// CHECK-NEXT: ImplicitParamDecl{{.*}} self
-// CHECK-NEXT: ImplicitParamDecl{{.*}} _cmd
-// CHECK-NEXT: ParmVarDecl{{.*}} i 'int'
-// CHECK-NEXT: ...
-// CHECK-NEXT: CompoundStmt
-@end
-
-@protocol TestObjCProtocolDecl
-- (void) foo;
-@end
-// CHECK: ObjCProtocolDecl{{.*}} TestObjCProtocolDecl
-// CHECK-NEXT: ObjCMethodDecl{{.*}} foo
-
-@interface TestObjCClass : A <P>
-- (void) foo;
-@end
-// CHECK: ObjCInterfaceDecl{{.*}} TestObjCClass
-// CHECK-NEXT: super ObjCInterface{{.*}} 'A'
-// CHECK-NEXT: ObjCImplementation{{.*}} 'TestObjCClass'
-// CHECK-NEXT: ObjCProtocol{{.*}} 'P'
-// CHECK-NEXT: ObjCMethodDecl{{.*}} foo
-
-@implementation TestObjCClass : A {
- int i;
-}
-- (void) foo {
-}
-@end
-// CHECK: ObjCImplementationDecl{{.*}} TestObjCClass
-// CHECK-NEXT: super ObjCInterface{{.*}} 'A'
-// CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCClass'
-// CHECK-NEXT: ObjCIvarDecl{{.*}} i
-// CHECK-NEXT: ObjCMethodDecl{{.*}} foo
-
-@interface TestObjCClass (TestObjCCategoryDecl) <P>
-- (void) bar;
-@end
-// CHECK: ObjCCategoryDecl{{.*}} TestObjCCategoryDecl
-// CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCClass'
-// CHECK-NEXT: ObjCCategoryImpl{{.*}} 'TestObjCCategoryDecl'
-// CHECK-NEXT: ObjCProtocol{{.*}} 'P'
-// CHECK-NEXT: ObjCMethodDecl{{.*}} bar
-
-@implementation TestObjCClass (TestObjCCategoryDecl)
-- (void) bar {
-}
-@end
-// CHECK: ObjCCategoryImplDecl{{.*}} TestObjCCategoryDecl
-// CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCClass'
-// CHECK-NEXT: ObjCCategory{{.*}} 'TestObjCCategoryDecl'
-// CHECK-NEXT: ObjCMethodDecl{{.*}} bar
-
-@compatibility_alias TestObjCCompatibleAliasDecl A;
-// CHECK: ObjCCompatibleAliasDecl{{.*}} TestObjCCompatibleAliasDecl
-// CHECK-NEXT: ObjCInterface{{.*}} 'A'
-
-@interface TestObjCProperty: A
-@property(getter=getterFoo, setter=setterFoo:) int foo;
-@property int bar;
-@end
-// CHECK: ObjCInterfaceDecl{{.*}} TestObjCProperty
-// CHECK: ObjCPropertyDecl{{.*}} foo 'int' assign readwrite atomic unsafe_unretained
-// CHECK-NEXT: getter ObjCMethod{{.*}} 'getterFoo'
-// CHECK-NEXT: setter ObjCMethod{{.*}} 'setterFoo:'
-// CHECK-NEXT: ObjCPropertyDecl{{.*}} bar 'int' assign readwrite atomic unsafe_unretained
-// CHECK-NEXT: ObjCMethodDecl{{.*}} getterFoo
-// CHECK-NEXT: ObjCMethodDecl{{.*}} setterFoo:
-// CHECK-NEXT: ParmVarDecl{{.*}} foo
-// CHECK-NEXT: ObjCMethodDecl{{.*}} bar
-// CHECK-NEXT: ObjCMethodDecl{{.*}} setBar:
-// CHECK-NEXT: ParmVarDecl{{.*}} bar
-
-@implementation TestObjCProperty {
- int i;
-}
-@synthesize foo=i;
-@synthesize bar;
-@end
-// CHECK: ObjCImplementationDecl{{.*}} TestObjCProperty
-// CHECK: ObjCPropertyImplDecl{{.*}} foo synthesize
-// CHECK-NEXT: ObjCProperty{{.*}} 'foo'
-// CHECK-NEXT: ObjCIvar{{.*}} 'i' 'int'
-// CHECK-NEXT: ObjCIvarDecl{{.*}} bar 'int' synthesize private
-// CHECK-NEXT: ObjCPropertyImplDecl{{.*}} bar synthesize
-// CHECK-NEXT: ObjCProperty{{.*}} 'bar'
-// CHECK-NEXT: ObjCIvar{{.*}} 'bar' 'int'
-
-void TestBlockDecl(int x) {
- ^(int y, ...){ x; };
-}
-// CHECK: FunctionDecl{{.*}}TestBlockDecl
-// CHECK: BlockDecl
-// CHECK-NEXT: ParmVarDecl{{.*}} y 'int'
-// CHECK-NEXT: ...
-// CHECK-NEXT: capture ParmVar{{.*}} 'x' 'int'
-// CHECK-NEXT: CompoundStmt
-
-@interface B
-+ (int) foo;
-@end
-
-void f() {
- __typeof__(B.foo) Test;
-}
-// CHECK: VarDecl{{.*}}Test 'typeof (B.foo)':'int'
diff --git a/test/Misc/ast-dump-decl.mm b/test/Misc/ast-dump-decl.mm
deleted file mode 100644
index be245f7ef5cd..000000000000
--- a/test/Misc/ast-dump-decl.mm
+++ /dev/null
@@ -1,33 +0,0 @@
-// RUN: %clang_cc1 -Wno-unused -fblocks -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-@interface A
-@end
-
-@interface TestObjCImplementation : A
-@end
-
-@implementation TestObjCImplementation : A {
- struct X {
- int i;
- } X;
-}
-- (void) foo {
-}
-@end
-// CHECK: ObjCImplementationDecl{{.*}} TestObjCImplementation
-// CHECK-NEXT: super ObjCInterface{{.*}} 'A'
-// CHECK-NEXT: ObjCInterface{{.*}} 'TestObjCImplementation'
-// CHECK-NEXT: CXXCtorInitializer{{.*}} 'X'
-// CHECK-NEXT: CXXConstructExpr
-// CHECK-NEXT: ObjCIvarDecl{{.*}} X
-// CHECK-NEXT: ObjCMethodDecl{{.*}} foo
-
-// @() boxing expressions.
-template <typename T>
-struct BoxingTest {
- static id box(T value) {
- return @(value);
- }
-};
-
-// CHECK: ObjCBoxedExpr{{.*}} '<dependent type>'{{$}}
diff --git a/test/Misc/ast-dump-invalid.cpp b/test/Misc/ast-dump-invalid.cpp
deleted file mode 100644
index 1f7442155e33..000000000000
--- a/test/Misc/ast-dump-invalid.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// RUN: not %clang_cc1 -std=c++11 -triple x86_64-linux-gnu -fms-extensions -ast-dump -ast-dump-filter Test %s | FileCheck -check-prefix CHECK -strict-whitespace %s
-
-namespace TestInvalidRParenOnCXXUnresolvedConstructExpr {
-template <class T>
-void f(T i, T j) {
- return T (i, j;
-}
-}
-
-// CHECK: NamespaceDecl {{.*}} <{{.*}}> {{.*}} TestInvalidRParenOnCXXUnresolvedConstructExpr
-// CHECK-NEXT: `-FunctionTemplateDecl
-// CHECK-NEXT: |-TemplateTypeParmDecl
-// CHECK-NEXT: `-FunctionDecl
-// CHECK-NEXT: |-ParmVarDecl
-// CHECK-NEXT: |-ParmVarDecl
-// CHECK-NEXT: `-CompoundStmt
-// CHECK-NEXT: `-ReturnStmt
-// CHECK-NEXT: `-CXXUnresolvedConstructExpr {{.*}} <col:10, col:16> 'T'
-// CHECK-NEXT: |-DeclRefExpr {{.*}} <col:13> 'T' lvalue ParmVar {{.*}} 'i' 'T'
-// CHECK-NEXT: `-DeclRefExpr {{.*}} <col:16> 'T' lvalue ParmVar {{.*}} 'j' 'T'
-
-
-namespace TestInvalidIf {
-int g(int i) {
- if (invalid_condition)
- return 4;
- else
- return i;
-}
-}
-// CHECK: NamespaceDecl {{.*}} <{{.*}}> {{.*}} TestInvalidIf
-// CHECK-NEXT: `-FunctionDecl
-// CHECK-NEXT: |-ParmVarDecl
-// CHECK-NEXT: `-CompoundStmt
-// CHECK-NEXT: `-IfStmt {{.*}} <line:25:3, line:28:12>
-// CHECK-NEXT: |-<<<NULL>>>
-// CHECK-NEXT: |-<<<NULL>>>
-// CHECK-NEXT: |-OpaqueValueExpr {{.*}} <<invalid sloc>> 'bool'
-// CHECK-NEXT: |-ReturnStmt {{.*}} <line:26:5, col:12>
-// CHECK-NEXT: | `-IntegerLiteral {{.*}} <col:12> 'int' 4
-// CHECK-NEXT: `-ReturnStmt {{.*}} <line:28:5, col:12>
-// CHECK-NEXT: `-ImplicitCastExpr {{.*}} <col:12> 'int' <LValueToRValue>
-// CHECK-NEXT: `-DeclRefExpr {{.*}} <col:12> 'int' lvalue ParmVar {{.*}} 'i' 'int'
-
-namespace TestInvalidFunctionDecl {
-struct Str {
- double foo1(double, invalid_type);
-};
-double Str::foo1(double, invalid_type)
-{ return 45; }
-}
-// CHECK: NamespaceDecl {{.*}} <{{.*}}> {{.*}} TestInvalidFunctionDecl
-// CHECK-NEXT: |-CXXRecordDecl {{.*}} <line:46:1, line:48:1> line:46:8 struct Str definition
-// CHECK: | |-CXXRecordDecl {{.*}} <col:1, col:8> col:8 implicit struct Str
-// CHECK-NEXT: | `-CXXMethodDecl {{.*}} <line:47:4, col:36> col:11 invalid foo1 'double (double, int)'
-// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:16> col:22 'double'
-// CHECK-NEXT: | `-ParmVarDecl {{.*}} <col:24, <invalid sloc>> col:36 invalid 'int'
-// CHECK-NEXT: `-CXXMethodDecl {{.*}} parent {{.*}} <line:49:1, line:50:14> line:49:13 invalid foo1 'double (double, int)'
-// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:18> col:24 'double'
-// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:26, <invalid sloc>> col:38 invalid 'int'
-// CHECK-NEXT: `-CompoundStmt {{.*}} <line:50:1, col:14>
-// CHECK-NEXT: `-ReturnStmt {{.*}} <col:3, col:10>
-// CHECK-NEXT: `-ImplicitCastExpr {{.*}} <col:10> 'double' <IntegralToFloating>
-// CHECK-NEXT: `-IntegerLiteral {{.*}} <col:10> 'int' 45
diff --git a/test/Misc/ast-dump-lookups.cpp b/test/Misc/ast-dump-lookups.cpp
deleted file mode 100644
index 2d235010cb73..000000000000
--- a/test/Misc/ast-dump-lookups.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-// RUN: %clang_cc1 -std=c++11 -ast-dump -ast-dump-filter Test %s | FileCheck -check-prefix DECLS %s
-// RUN: %clang_cc1 -std=c++11 -ast-dump-lookups -ast-dump-filter Test %s | FileCheck -check-prefix LOOKUPS %s
-// RUN: %clang_cc1 -std=c++11 -ast-dump -ast-dump-lookups -ast-dump-filter Test %s | FileCheck -check-prefix DECLS-LOOKUPS %s
-// RUN: %clang_cc1 -std=c++11 -DPRAGMA -fsyntax-only %s 2>&1 | FileCheck -check-prefix PRAGMA %s
-
-namespace Test {
- typedef int T;
- extern int a;
- int a = 0;
-}
-
-#ifdef PRAGMA
-#pragma clang __debug dump Test
-// PRAGMA: lookup results for Test:
-// PRAGMA-NEXT: NamespaceDecl {{.*}} Test
-// PRAGMA-NEXT: |-TypedefDecl {{.*}} T 'int'
-// PRAGMA-NEXT: | `-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
-#endif
-
-namespace Test { }
-
-// DECLS: Dumping Test:
-// DECLS-NEXT: NamespaceDecl {{.*}} Test
-// DECLS-NEXT: |-TypedefDecl {{.*}} T 'int'
-// DECLS-NEXT: | `-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: Dumping Test:
-// DECLS-NEXT: NamespaceDecl {{.*}} Test
-
-// LOOKUPS: Dumping Test:
-// LOOKUPS-NEXT: StoredDeclsMap Namespace {{.*}} 'Test'
-// LOOKUPS: DeclarationName 'a'
-// LOOKUPS-NEXT: `-Var {{.*}} 'a' 'int'
-//
-// LOOKUPS: Dumping Test:
-// LOOKUPS-NEXT: Lookup map is in primary DeclContext
-
-// DECLS-LOOKUPS: Dumping Test:
-// DECLS-LOOKUPS-NEXT: StoredDeclsMap 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: Dumping Test:
-// DECLS-LOOKUPS-NEXT: Lookup map is in primary DeclContext
diff --git a/test/Misc/ast-dump-msp430-attr.c b/test/Misc/ast-dump-msp430-attr.c
deleted file mode 100644
index 3ccb3bdb705f..000000000000
--- a/test/Misc/ast-dump-msp430-attr.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %clang_cc1 -triple msp430-unknown-unknown -ast-dump -ast-dump-filter Test %s | FileCheck --strict-whitespace %s
-
-__attribute__((interrupt(12))) void Test(void);
-// CHECK: FunctionDecl{{.*}}Test
-// CHECK-NEXT: MSP430InterruptAttr
diff --git a/test/Misc/ast-dump-pipe.cl b/test/Misc/ast-dump-pipe.cl
deleted file mode 100644
index ceed2f6f8992..000000000000
--- a/test/Misc/ast-dump-pipe.cl
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: %clang_cc1 -triple spir64 -cl-std=CL2.0 -ast-dump -ast-dump-filter pipetype %s | FileCheck -strict-whitespace %s
-typedef pipe int pipetype;
-// CHECK: PipeType {{.*}} 'read_only pipe int'
-// CHECK-NEXT: BuiltinType {{.*}} 'int'
-
-typedef read_only pipe int pipetype2;
-// CHECK: PipeType {{.*}} 'read_only pipe int'
-// CHECK-NEXT: BuiltinType {{.*}} 'int'
-
-typedef write_only pipe int pipetype3;
-// CHECK: PipeType {{.*}} 'write_only pipe int'
-// CHECK-NEXT: BuiltinType {{.*}} 'int'
diff --git a/test/Misc/ast-dump-stmt.c b/test/Misc/ast-dump-stmt.c
deleted file mode 100644
index 461893188a16..000000000000
--- a/test/Misc/ast-dump-stmt.c
+++ /dev/null
@@ -1,67 +0,0 @@
-// RUN: %clang_cc1 -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-int TestLocation = 0;
-// CHECK: VarDecl{{.*}}TestLocation
-// CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} <col:20> 'int' 0
-
-int TestIndent = 1 + (1);
-// CHECK: VarDecl{{.*}}TestIndent
-// CHECK-NEXT: {{^}}`-BinaryOperator{{[^()]*$}}
-// CHECK-NEXT: {{^}} |-IntegerLiteral{{.*0[^()]*$}}
-// CHECK-NEXT: {{^}} `-ParenExpr{{.*0[^()]*$}}
-// CHECK-NEXT: {{^}} `-IntegerLiteral{{.*0[^()]*$}}
-
-void TestDeclStmt() {
- 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
-
-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
-
-void TestUnaryOperatorExpr(void) {
- char T1 = 1;
- int T2 = 1;
-
- 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'
-}
diff --git a/test/Misc/ast-dump-stmt.cpp b/test/Misc/ast-dump-stmt.cpp
deleted file mode 100644
index 55b9b5fa9531..000000000000
--- a/test/Misc/ast-dump-stmt.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// RUN: %clang_cc1 -fcxx-exceptions -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-namespace n {
-void function() {}
-int Variable;
-}
-using n::function;
-using n::Variable;
-void TestFunction() {
- void (*f)() = &function;
-// CHECK: DeclRefExpr{{.*}} (UsingShadow{{.*}}function
- Variable = 4;
-// CHECK: DeclRefExpr{{.*}} (UsingShadow{{.*}}Variable
-}
-
-// CHECK: FunctionDecl {{.*}} TestCatch1
-void TestCatch1() {
-// CHECK: CXXTryStmt
-// CHECK-NEXT: CompoundStmt
- try {
- }
-// CHECK-NEXT: CXXCatchStmt
-// CHECK-NEXT: VarDecl {{.*}} x
-// CHECK-NEXT: CompoundStmt
- catch (int x) {
- }
-}
-
-// CHECK: FunctionDecl {{.*}} TestCatch2
-void TestCatch2() {
-// CHECK: CXXTryStmt
-// CHECK-NEXT: CompoundStmt
- try {
- }
-// CHECK-NEXT: CXXCatchStmt
-// CHECK-NEXT: NULL
-// CHECK-NEXT: CompoundStmt
- catch (...) {
- }
-}
-
-void TestAllocationExprs() {
- int *p;
- p = new int;
- delete p;
- p = new int[2];
- delete[] p;
- p = ::new int;
- ::delete p;
-}
-// CHECK: FunctionDecl {{.*}} TestAllocationExprs
-// CHECK: CXXNewExpr {{.*}} 'int *' Function {{.*}} 'operator new'
-// CHECK: CXXDeleteExpr {{.*}} 'void' Function {{.*}} 'operator delete'
-// CHECK: CXXNewExpr {{.*}} 'int *' array Function {{.*}} 'operator new[]'
-// CHECK: CXXDeleteExpr {{.*}} 'void' array Function {{.*}} 'operator delete[]'
-// CHECK: CXXNewExpr {{.*}} 'int *' global Function {{.*}} 'operator new'
-// CHECK: CXXDeleteExpr {{.*}} 'void' global Function {{.*}} 'operator delete'
-
-// Don't crash on dependent exprs that haven't been resolved yet.
-template <typename T>
-void TestDependentAllocationExpr() {
- T *p = new T;
- delete p;
-}
-// CHECK: FunctionTemplateDecl {{.*}} TestDependentAllocationExpr
-// CHECK: CXXNewExpr {{.*'T \*'$}}
-// CHECK: CXXDeleteExpr {{.*'void'$}}
-
-template <typename T>
-class DependentScopeMemberExprWrapper {
- T member;
-};
-
-template <typename T>
-void TestDependentScopeMemberExpr() {
- DependentScopeMemberExprWrapper<T> obj;
- obj.member = T();
- (&obj)->member = T();
-}
-
-// CHECK: FunctionTemplateDecl {{.*}} TestDependentScopeMemberExpr
-// CHECK: CXXDependentScopeMemberExpr {{.*}} lvalue .member
-// CHECK: CXXDependentScopeMemberExpr {{.*}} lvalue ->member
diff --git a/test/Misc/ast-dump-stmt.m b/test/Misc/ast-dump-stmt.m
deleted file mode 100644
index 8c0ca897e511..000000000000
--- a/test/Misc/ast-dump-stmt.m
+++ /dev/null
@@ -1,36 +0,0 @@
-// RUN: %clang_cc1 -Wno-unused -fblocks -fobjc-exceptions -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
-
-void TestBlockExpr(int x) {
- ^{ x; };
-}
-// CHECK: FunctionDecl{{.*}}TestBlockExpr
-// CHECK: BlockExpr{{.*}} 'void (^)(void)'
-// CHECK-NEXT: BlockDecl
-
-void TestExprWithCleanup(int x) {
- ^{ x; };
-}
-// CHECK: FunctionDecl{{.*}}TestExprWithCleanup
-// CHECK: ExprWithCleanups
-// CHECK-NEXT: cleanup Block
-// CHECK-NEXT: BlockExpr
-
-@interface A
-@end
-
-void TestObjCAtCatchStmt() {
- @try {
- } @catch(A *a) {
- } @catch(...) {
- } @finally {
- }
-}
-// CHECK: FunctionDecl{{.*}}TestObjCAtCatchStmt
-// CHECK: ObjCAtTryStmt
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: ObjCAtCatchStmt{{.*}}
-// CHECK-NEXT: VarDecl{{.*}}a
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: ObjCAtCatchStmt{{.*}} catch all
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: ObjCAtFinallyStmt
diff --git a/test/Misc/ast-dump-templates.cpp b/test/Misc/ast-dump-templates.cpp
deleted file mode 100644
index 89feee75268a..000000000000
--- a/test/Misc/ast-dump-templates.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// RUN: %clang_cc1 -std=c++1z -ast-print %s > %t
-// RUN: FileCheck < %t %s -check-prefix=CHECK1
-// RUN: FileCheck < %t %s -check-prefix=CHECK2
-// RUN: %clang_cc1 -std=c++1z -ast-dump %s | FileCheck --check-prefix=DUMP %s
-
-template <int X, typename Y, int Z = 5>
-struct foo {
- int constant;
- foo() {}
- Y getSum() { return Y(X + Z); }
-};
-
-template <int A, typename B>
-B bar() {
- return B(A);
-}
-
-void baz() {
- int x = bar<5, int>();
- int y = foo<5, int>().getSum();
- double z = foo<2, double, 3>().getSum();
-}
-
-// Template definition - foo
-// CHECK1: template <int X, typename Y, int Z = 5> struct foo {
-// CHECK2: template <int X, typename Y, int Z = 5> struct foo {
-
-// Template instantiation - foo
-// Since the order of instantiation may vary during runs, run FileCheck twice
-// to make sure each instantiation is in the correct spot.
-// CHECK1: template<> struct foo<5, int, 5> {
-// CHECK2: template<> struct foo<2, double, 3> {
-
-// Template definition - bar
-// CHECK1: template <int A, typename B> B bar()
-// CHECK2: template <int A, typename B> B bar()
-
-// Template instantiation - bar
-// CHECK1: template<> int bar<5, int>()
-// CHECK2: template<> int bar<5, int>()
-
-// CHECK1-LABEL: template <typename ...T> struct A {
-// CHECK1-NEXT: template <T ...x[3]> struct B {
-template <typename ...T> struct A {
- template <T ...x[3]> struct B {};
-};
-
-// CHECK1-LABEL: template <typename ...T> void f(T ...[3]) {
-// CHECK1-NEXT: A<T [3]...> a;
-template <typename ...T> void f(T ...[3]) {
- A<T [3]...> a;
-}
-
-namespace test2 {
-void func(int);
-void func(float);
-template<typename T>
-void tmpl() {
- func(T());
-}
-
-// DUMP: UnresolvedLookupExpr {{.*}} <col:3> '<overloaded function type>' lvalue (ADL) = 'func'
-}
-
-namespace test3 {
- template<typename T> struct A {};
- template<typename T> A(T) -> A<int>;
- // CHECK1: template <typename T> A(T) -> A<int>;
-}
diff --git a/test/Misc/ast-dump-wchar.cpp b/test/Misc/ast-dump-wchar.cpp
deleted file mode 100644
index 339295c133d1..000000000000
--- a/test/Misc/ast-dump-wchar.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// RUN: %clang_cc1 -std=c++11 -ast-dump %s -triple x86_64-linux-gnu | FileCheck %s
-
-char c8[] = u8"test\0\\\"\a\b\f\n\r\t\v\234";
-// CHECK: StringLiteral {{.*}} lvalue u8"test\000\\\"\a\b\f\n\r\t\v\234"
-
-char16_t c16[] = u"test\0\\\"\t\a\b\234\u1234";
-// CHECK: StringLiteral {{.*}} lvalue u"test\000\\\"\t\a\b\234\u1234"
-
-char32_t c32[] = U"test\0\\\"\t\a\b\234\u1234\U0010ffff"; // \
-// CHECK: StringLiteral {{.*}} lvalue U"test\000\\\"\t\a\b\234\u1234\U0010FFFF"
-
-wchar_t wc[] = L"test\0\\\"\t\a\b\234\u1234\xffffffff"; // \
-// CHECK: StringLiteral {{.*}} lvalue L"test\000\\\"\t\a\b\234\x1234\xFFFFFFFF"
diff --git a/test/Misc/ast-print-bool.c b/test/Misc/ast-print-bool.c
deleted file mode 100644
index 05519bcd4e54..000000000000
--- a/test/Misc/ast-print-bool.c
+++ /dev/null
@@ -1,44 +0,0 @@
-// RUN: %clang_cc1 -verify -ast-print %s -xc -DDEF_BOOL_CBOOL \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-CBOOL,CBOOL
-//
-// RUN: %clang_cc1 -verify -ast-print %s -xc -DDEF_BOOL_CBOOL -DDIAG \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-CBOOL,CBOOL
-//
-// RUN: %clang_cc1 -verify -ast-print %s -xc -DDEF_BOOL_INT \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-INT,CBOOL
-//
-// RUN: %clang_cc1 -verify -ast-print %s -xc -DDEF_BOOL_INT -DDIAG \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-INT,CBOOL
-//
-// RUN: %clang_cc1 -verify -ast-print %s -xc++ \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-BOOL
-//
-// RUN: %clang_cc1 -verify -ast-print %s -xc++ -DDIAG \
-// RUN: | FileCheck %s --check-prefixes=BOOL-AS-BOOL
-
-#if DEF_BOOL_CBOOL
-# define bool _Bool
-#elif DEF_BOOL_INT
-# define bool int
-#endif
-
-// BOOL-AS-CBOOL: _Bool i;
-// BOOL-AS-INT: int i;
-// BOOL-AS-BOOL: bool i;
-bool i;
-
-#ifndef __cplusplus
-// CBOOL: _Bool j;
-_Bool j;
-#endif
-
-// Induce a diagnostic (and verify we actually managed to do so), which used to
-// permanently alter the -ast-print printing policy for _Bool. How bool is
-// defined by the preprocessor is examined only once per compilation, when the
-// diagnostic is emitted, and it used to affect the entirety of -ast-print, so
-// test only one definition of bool per compilation.
-#if DIAG
-void fn() { 1; } // expected-warning {{expression result unused}}
-#else
-// expected-no-diagnostics
-#endif
diff --git a/test/Misc/ast-print-char-literal.cpp b/test/Misc/ast-print-char-literal.cpp
deleted file mode 100644
index 614b3ca9d73c..000000000000
--- a/test/Misc/ast-print-char-literal.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// RUN: %clang_cc1 -ast-print -std=c++1z %s -o - | FileCheck %s
-
-char c = u8'1';
-char d = '1';
-char e = U'1';
-char f = L'1';
-char g = u'1';
-
-template <char c = u8'1'>
-void h();
-
-void i() {
- h<u8'2'>();
-}
-
-char j = '\xFF';
-
-// CHECK: char c = u8'1';
-// CHECK-NEXT: char d = '1';
-// CHECK-NEXT: char e = U'1';
-// CHECK-NEXT: char f = L'1';
-// CHECK-NEXT: char g = u'1';
-
-// CHECK: template <char c = u8'1'>
-
-// CHECK: h<u8'2'>();
-// CHECK: char j = '\xff';
diff --git a/test/Misc/ast-print-enum-decl.c b/test/Misc/ast-print-enum-decl.c
deleted file mode 100644
index fba931344285..000000000000
--- a/test/Misc/ast-print-enum-decl.c
+++ /dev/null
@@ -1,105 +0,0 @@
-// First check compiling and printing of this file.
-//
-// RUN: %clang_cc1 -verify -ast-print %s > %t.c
-// RUN: FileCheck --check-prefixes=CHECK,PRINT %s --input-file %t.c
-//
-// Now check compiling and printing of the printed file.
-//
-// RUN: echo "// expected""-warning@* 6 {{'T' is deprecated}}" >> %t.c
-// RUN: echo "// expected""-note@* 6 {{'T' has been explicitly marked deprecated here}}" >> %t.c
-//
-// RUN: %clang_cc1 -verify -ast-print %t.c \
-// RUN: | FileCheck --check-prefixes=CHECK,PRINT %s
-
-// END.
-
-// CHECK-LABEL: defFirst
-void defFirst() {
- // PRINT-NEXT: enum
- // PRINT-DAG: __attribute__((aligned(16)))
- // PRINT-DAG: __attribute__((deprecated("")))
- // PRINT-SAME: T {
- // PRINT-NEXT: E0,
- // PRINT-NEXT: E1
- // PRINT-NEXT: } *p0;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 2 {{'T' has been explicitly marked deprecated here}}
- enum __attribute__((aligned(16))) __attribute__((deprecated(""))) T {
- E0, E1
- } *p0;
-
- // PRINT-NEXT: enum T *p1;
- enum T *p1; // expected-warning {{'T' is deprecated}}
-}
-
-// CHECK-LABEL: defLast
-void defLast() {
- // PRINT-NEXT: enum __attribute__((aligned(16))) T *p0;
- enum __attribute__((aligned(16))) T *p0;
-
- // PRINT-NEXT: enum __attribute__((deprecated(""))) T {
- // PRINT-NEXT: E0,
- // PRINT-NEXT: E1
- // PRINT-NEXT: } *p1;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 {{'T' has been explicitly marked deprecated here}}
- enum __attribute__((deprecated(""))) T { E0, E1 } *p1;
-}
-
-// CHECK-LABEL: defMiddle
-void defMiddle() {
- // PRINT-NEXT: enum __attribute__((deprecated(""))) T *p0;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 3 {{'T' has been explicitly marked deprecated here}}
- enum __attribute__((deprecated(""))) T *p0;
-
- // PRINT-NEXT: enum __attribute__((aligned(16))) T {
- // PRINT-NEXT: E0
- // PRINT-NEXT: E1
- // PRINT-NEXT: } *p1;
- enum __attribute__((aligned(16))) T { E0, E1 } *p1; // expected-warning {{'T' is deprecated}}
-
- // PRINT-NEXT: enum T *p2;
- enum T *p2; // expected-warning {{'T' is deprecated}}
-}
-
-// CHECK-LABEL: declsOnly
-void declsOnly() {
- // FIXME: For some reason, attributes are ignored if they're not on the first
- // declaration and not on the definition.
-
- // PRINT-NEXT: enum __attribute__((aligned)) T *p0;
- enum __attribute__((aligned)) T *p0;
-
- // PRINT-NEXT: enum T *p1;
- enum __attribute__((may_alias)) T *p1;
-
- // PRINT-NEXT: enum T *p2;
- enum T *p2;
-
- // PRINT-NEXT: enum T *p3;
- enum __attribute__((deprecated(""))) T *p3;
-
- // PRINT-NEXT: enum T *p4;
- enum T *p4;
-}
-
-// Check that tag decl groups stay together in decl contexts.
-
-// PRINT-LABEL: enum DeclGroupAtFileScope {
-// PRINT-NEXT: DeclGroupAtFileScope0
-// PRINT-NEXT: } *DeclGroupAtFileScopePtr;
-enum DeclGroupAtFileScope { DeclGroupAtFileScope0 } *DeclGroupAtFileScopePtr;
-
-// PRINT-LABEL: struct DeclGroupInMemberList
-struct DeclGroupInMemberList {
- // PRINT-NEXT: enum T1 {
- // PRINT-NEXT: T10
- // PRINT-NEXT: } *p0;
- enum T1 { T10 } *p0;
- // PRINT-NEXT: enum T2 {
- // PRINT-NEXT: T20
- // PRINT-NEXT: } *p1, *p2;
- enum T2 { T20 } *p1, *p2;
- // PRINT-NEXT: };
-};
diff --git a/test/Misc/ast-print-objectivec.m b/test/Misc/ast-print-objectivec.m
deleted file mode 100644
index 05a0a5d4aa74..000000000000
--- a/test/Misc/ast-print-objectivec.m
+++ /dev/null
@@ -1,62 +0,0 @@
-// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
-
-@interface NSObject @end
-
-@protocol P
-- (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2)));
-@end
-
-@interface I : NSObject <P>
-- (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2)));
-@end
-
-@interface I(CAT)
-- (void)MethCAT __attribute__((availability(macosx,introduced=10_1_0,deprecated=10_2)));
-@end
-
-@implementation I
-- (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
-- (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {}
-
-- (void)methodWithArg:(int)x andAnotherOne:(int)y { }
-@end
-
-// CHECK: @protocol P
-// CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
-// CHECK: @end
-
-// CHECK: @interface I : NSObject<P>
-// CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
-// CHECK: @end
-
-// CHECK: @interface I(CAT)
-// CHECK: - (void)MethCAT __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2)));
-// CHECK: @end
-
-// CHECK: @implementation I
-// CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
-// CHECK: }
-
-// CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) {
-// CHECK: }
-
-// CHECK: - (void)methodWithArg:(int)x andAnotherOne:(int)y {
-// CHECK: }
-
-// CHECK: @end
-
-@class C1;
-struct __attribute__((objc_bridge_related(C1,,))) S1;
-
-// CHECK: @class C1;
-// CHECK: struct __attribute__((objc_bridge_related(C1, , ))) S1;
-
-@interface ImplicitPropertyWithSetterOnly
-
-- (void)setX:(int)x;
-
-@end
-
-void printImplicitPropertyWithSetterOnly(ImplicitPropertyWithSetterOnly *x) {
- x.x = 313; // CHECK: x.x = 313;
-}
diff --git a/test/Misc/ast-print-out-of-line-func.cpp b/test/Misc/ast-print-out-of-line-func.cpp
deleted file mode 100644
index 7d42f1f4037f..000000000000
--- a/test/Misc/ast-print-out-of-line-func.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-// RUN: %clang_cc1 -ast-print -std=c++14 %s | FileCheck %s
-
-namespace ns {
-
-struct Wrapper {
-class Inner {
- Inner();
- Inner(int);
- ~Inner();
-
- void operator += (int);
-
- template<typename T>
- void member();
-
- static void staticMember();
-
- operator int();
-
- operator ns::Wrapper();
- // CHECK: operator ns::Wrapper()
-};
-};
-
-Wrapper::Inner::Inner() { }
-// CHECK: Wrapper::Inner::Inner()
-
-void Wrapper::Inner::operator +=(int) { }
-// CHECK: void Wrapper::Inner::operator+=(int)
-
-}
-
-ns::Wrapper::Inner::Inner(int) { }
-// CHECK: ns::Wrapper::Inner::Inner(int)
-
-ns::Wrapper::Inner::~Inner() { }
-// CHECK: ns::Wrapper::Inner::~Inner()
-
-template<typename T>
-void ::ns::Wrapper::Inner::member() { }
-// CHECK: template <typename T> void ::ns::Wrapper::Inner::member()
-
-ns::Wrapper::Inner::operator int() { return 0; }
-// CHECK: ns::Wrapper::Inner::operator int()
-
-ns::Wrapper::Inner::operator ::ns::Wrapper() { return ns::Wrapper(); }
-// CHECK: ns::Wrapper::Inner::operator ::ns::Wrapper()
-
-namespace ns {
-
-void Wrapper::Inner::staticMember() { }
-// CHECK: void Wrapper::Inner::staticMember()
-
-}
-
-template<int x, typename T>
-class TemplateRecord {
- void function();
- template<typename U> void functionTemplate(T, U);
-};
-
-template<int x, typename T>
-void TemplateRecord<x, T>::function() { }
-// CHECK: template <int x, typename T> void TemplateRecord<x, T>::function()
-
-template<int x, typename T>
-template<typename U>
-void TemplateRecord<x, T>::functionTemplate(T, U) { }
-// CHECK: template <int x, typename T> template <typename U> void TemplateRecord<x, T>::functionTemplate(T, U)
-
-template<>
-class TemplateRecord<0, int> {
- void function();
- template<typename U> void functionTemplate(int, U);
-};
-
-void TemplateRecord<0, int>::function() { }
-// CHECK: void TemplateRecord<0, int>::function()
-
-template<typename U>
-void TemplateRecord<0, int>::functionTemplate(int, U) { }
-// CHECK: template <typename U> void TemplateRecord<0, int>::functionTemplate(int, U)
-
-template<typename T>
-struct OuterTemplateRecord {
- template<typename U>
- struct Inner {
- void function();
- };
-};
-
-template<typename T>
-template<typename U>
-void OuterTemplateRecord<T>::Inner<U>::function() { }
-// CHECK: template <typename T> template <typename U> void OuterTemplateRecord<T>::Inner<U>::function()
diff --git a/test/Misc/ast-print-pragmas-xfail.cpp b/test/Misc/ast-print-pragmas-xfail.cpp
deleted file mode 100644
index 69ba48d0de29..000000000000
--- a/test/Misc/ast-print-pragmas-xfail.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// RUN: %clang_cc1 %s -ast-print -o - | FileCheck %s
-
-// FIXME: Test fails because attribute order is reversed by ParsedAttributes.
-// XFAIL: *
-
-void run1(int *List, int Length) {
- int i = 0;
-// CHECK: #pragma loop vectorize(4)
-// CHECK-NEXT: #pragma loop interleave(8)
-// CHECK-NEXT: #pragma loop vectorize(enable)
-// CHECK-NEXT: #pragma loop interleave(enable)
-#pragma loop vectorize(4)
-#pragma loop interleave(8)
-#pragma loop vectorize(enable)
-#pragma loop interleave(enable)
-// CHECK-NEXT: while (i < Length)
- while (i < Length) {
- List[i] = i;
- i++;
- }
-}
diff --git a/test/Misc/ast-print-pragmas.cpp b/test/Misc/ast-print-pragmas.cpp
deleted file mode 100644
index f1a7b2479b6b..000000000000
--- a/test/Misc/ast-print-pragmas.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
-// RUN: %clang_cc1 -DMS_EXT -fsyntax-only -fms-extensions %s -triple x86_64-pc-win32 -ast-print | FileCheck %s --check-prefix=MS-EXT
-
-// FIXME: A bug in ParsedAttributes causes the order of the attributes to be
-// reversed. The checks are consequently in the reverse order below.
-
-// CHECK: #pragma clang loop interleave_count(8){{$}}
-// CHECK-NEXT: #pragma clang loop vectorize_width(4)
-
-void test(int *List, int Length) {
- int i = 0;
-#pragma clang loop vectorize_width(4)
-#pragma clang loop interleave_count(8)
-// CHECK-NEXT: while (i < Length)
- while (i < Length) {
- List[i] = i * 2;
- i++;
- }
-
-// CHECK: #pragma clang loop interleave(disable)
-// CHECK-NEXT: #pragma clang loop vectorize(enable)
-// CHECK-NEXT: #pragma clang loop distribute(disable)
-
-#pragma clang loop distribute(disable)
-#pragma clang loop vectorize(enable)
-#pragma clang loop interleave(disable)
-// CHECK-NEXT: while (i - 1 < Length)
- while (i - 1 < Length) {
- List[i] = i * 2;
- i++;
- }
-
-// CHECK: #pragma clang loop interleave(enable)
-// CHECK-NEXT: #pragma clang loop vectorize(disable)
-// CHECK-NEXT: #pragma clang loop distribute(enable)
-
-#pragma clang loop distribute(enable)
-#pragma clang loop vectorize(disable)
-#pragma clang loop interleave(enable)
-// CHECK-NEXT: while (i - 2 < Length)
- while (i - 2 < Length) {
- List[i] = i * 2;
- i++;
- }
-}
-
-template <int V, int I>
-void test_nontype_template_param(int *List, int Length) {
-#pragma clang loop vectorize_width(V) interleave_count(I)
- for (int i = 0; i < Length; i++) {
- List[i] = i;
- }
-}
-
-// CHECK: #pragma clang loop interleave_count(I)
-// CHECK: #pragma clang loop vectorize_width(V)
-
-void test_templates(int *List, int Length) {
- test_nontype_template_param<2, 4>(List, Length);
-}
-
-#ifdef MS_EXT
-#pragma init_seg(compiler)
-// MS-EXT: #pragma init_seg (.CRT$XCC){{$}}
-// MS-EXT-NEXT: int x = 3 __declspec(thread);
-int __declspec(thread) x = 3;
-#endif //MS_EXT
-
diff --git a/test/Misc/ast-print-record-decl.c b/test/Misc/ast-print-record-decl.c
deleted file mode 100644
index c27fdf42f337..000000000000
--- a/test/Misc/ast-print-record-decl.c
+++ /dev/null
@@ -1,291 +0,0 @@
-// Check struct:
-//
-// First check compiling and printing of this file.
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm \
-// RUN: -DKW=struct -DBASES= -o - %s \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print -DKW=struct -DBASES= %s > %t.c
-// RUN: FileCheck --check-prefixes=CHECK,PRINT,PRINT-C -DKW=struct -DBASES= \
-// RUN: %s --input-file %t.c
-//
-// Now check compiling and printing of the printed file.
-//
-// RUN: echo "// expected""-warning@* 10 {{'T' is deprecated}}" >> %t.c
-// RUN: echo "// expected""-note@* 10 {{'T' has been explicitly marked deprecated here}}" >> %t.c
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm -o - %t.c \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print %t.c \
-// RUN: | FileCheck --check-prefixes=CHECK,PRINT,PRINT-C -DKW=struct \
-// RUN: -DBASES= %s
-
-// Repeat for union:
-//
-// First check compiling and printing of this file.
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm \
-// RUN: -DKW=union -DBASES= -o - %s \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print -DKW=union -DBASES= %s > %t.c
-// RUN: FileCheck --check-prefixes=CHECK,PRINT,PRINT-C -DKW=union -DBASES= \
-// RUN: %s --input-file %t.c
-//
-// Now check compiling and printing of the printed file.
-//
-// RUN: echo "// expected""-warning@* 10 {{'T' is deprecated}}" >> %t.c
-// RUN: echo "// expected""-note@* 10 {{'T' has been explicitly marked deprecated here}}" >> %t.c
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm -o - %t.c \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print %t.c \
-// RUN: | FileCheck --check-prefixes=CHECK,PRINT,PRINT-C -DKW=union \
-// RUN: -DBASES= %s
-
-// Repeat for C++ (BASES helps ensure we're printing as C++ not as C):
-//
-// First check compiling and printing of this file.
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm \
-// RUN: -DKW=struct -DBASES=' : B' -o - -xc++ %s \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print -DKW=struct -DBASES=' : B' -xc++ %s \
-// RUN: > %t.cpp
-// RUN: FileCheck --check-prefixes=CHECK,PRINT,PRINT-CXX -DKW=struct \
-// RUN: -DBASES=' : B' %s --input-file %t.cpp
-//
-// Now check compiling and printing of the printed file.
-//
-// RUN: echo "// expected""-warning@* 10 {{'T' is deprecated}}" > %t.diags
-// RUN: echo "// expected""-note@* 10 {{'T' has been explicitly marked deprecated here}}" >> %t.diags
-// RUN: cat %t.diags >> %t.cpp
-//
-// RUN: %clang -target x86_64-linux -Xclang -verify -S -emit-llvm -o - %t.cpp \
-// RUN: | FileCheck --check-prefixes=CHECK,LLVM %s
-//
-// RUN: %clang_cc1 -verify -ast-print %t.cpp \
-// RUN: | FileCheck --check-prefixes=CHECK,PRINT,PRINT-CXX -DKW=struct \
-// RUN: -DBASES=' : B' %s
-//
-// Make sure implicit attributes aren't printed. See comments in inMemberPtr
-// for details.
-//
-// RUN: %clang_cc1 -triple i686-pc-win32 -verify -ast-print -DKW=struct \
-// RUN: -DBASES=' : B' -xc++ %s > %t.cpp
-// RUN: FileCheck --check-prefixes=CHECK,PRINT,PRINT-CXX -DKW=struct \
-// RUN: -DBASES=' : B' %s --input-file %t.cpp
-//
-// RUN: cat %t.diags >> %t.cpp
-// RUN: %clang_cc1 -triple i686-pc-win32 -verify -ast-print %t.cpp \
-// RUN: | FileCheck --check-prefixes=CHECK,PRINT,PRINT-CXX -DKW=struct \
-// RUN: -DBASES=' : B' %s
-
-// END.
-
-#ifndef KW
-# error KW undefined
-# define KW struct // help syntax checkers
-#endif
-
-#ifndef BASES
-# error BASES undefined
-# define BASES // help syntax checkers
-#endif
-
-struct B {};
-
-// CHECK-LABEL: defFirst
-void defFirst() {
- // PRINT-NEXT: [[KW]]
- // PRINT-DAG: __attribute__((aligned(16)))
- // PRINT-DAG: __attribute__((deprecated("")))
- // PRINT-NOT: __attribute__
- // PRINT-SAME: T[[BASES]] {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: } *p0;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 2 {{'T' has been explicitly marked deprecated here}}
- KW __attribute__((aligned(16))) __attribute__((deprecated(""))) T BASES {
- int i;
- } *p0;
-
- // PRINT-NEXT: [[KW]] T *p1;
- KW T *p1; // expected-warning {{'T' is deprecated}}
-
- // LLVM: store i64 16
- long s0 = sizeof *p0;
- // LLVM-NEXT: store i64 16
- long s1 = sizeof *p1;
-}
-
-// CHECK-LABEL: defLast
-void defLast() {
- // PRINT-NEXT: [[KW]] __attribute__((aligned(16))) T *p0;
- KW __attribute__((aligned(16))) T *p0;
-
- // PRINT-NEXT: [[KW]] __attribute__((deprecated(""))) T[[BASES]] {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: } *p1;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 {{'T' has been explicitly marked deprecated here}}
- KW __attribute__((deprecated(""))) T BASES { int i; } *p1;
-
- // LLVM: store i64 16
- long s0 = sizeof *p0;
- // LLVM-NEXT: store i64 16
- long s1 = sizeof *p1;
-}
-
-// CHECK-LABEL: defMiddle
-void defMiddle() {
- // PRINT-NEXT: [[KW]] __attribute__((deprecated(""))) T *p0;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 3 {{'T' has been explicitly marked deprecated here}}
- KW __attribute__((deprecated(""))) T *p0;
-
- // PRINT-NEXT: [[KW]] __attribute__((aligned(16))) T[[BASES]] {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: } *p1;
- KW __attribute__((aligned(16))) T BASES { int i; } *p1; // expected-warning {{'T' is deprecated}}
-
- // PRINT-NEXT: [[KW]] T *p2;
- KW T *p2; // expected-warning {{'T' is deprecated}}
-
- // LLVM: store i64 16
- long s0 = sizeof *p0;
- // LLVM-NEXT: store i64 16
- long s1 = sizeof *p1;
- // LLVM-NEXT: store i64 16
- long s2 = sizeof *p2;
-}
-
-// CHECK-LABEL: defSelfRef
-void defSelfRef() {
- // PRINT-NEXT: [[KW]] __attribute__((deprecated(""))) T *p0;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 2 {{'T' has been explicitly marked deprecated here}}
- KW __attribute__((deprecated(""))) T *p0;
-
- // PRINT-NEXT: [[KW]] __attribute__((aligned(64))) T[[BASES]] {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: [[KW]] T *p2;
- // PRINT-NEXT: [[KW]] __attribute__((may_alias)) T *p3;
- // PRINT-NEXT: [[KW]] T *p4;
- // PRINT-NEXT: } *p1;
- KW __attribute__((aligned(64))) T BASES { // expected-warning {{'T' is deprecated}}
- int i;
- KW T *p2;
- // FIXME: For C++, T at p3 loses aligned and deprecated, perhaps because
- // that RecordDecl isn't in the same redecl list. Perhaps the redecl lists
- // are split here but not in C due to the different scoping rules in C++
- // classes.
- KW __attribute__((may_alias)) T *p3;
- KW T *p4;
- } *p1;
-
- // LLVM: store i64 64
- long s0 = sizeof *p0;
- // LLVM-NEXT: store i64 64
- long s1 = sizeof *p1;
- // LLVM-NEXT: store i64 64
- long s2 = sizeof *p0->p2;
- // LLVM-NEXT: store i64 64
- long s3 = sizeof *p1->p3;
- // LLVM-NEXT: store i64 64
- long s4 = sizeof *p1->p4->p2;
-}
-
-// CHECK-LABEL: declsOnly
-void declsOnly() {
- // PRINT-NEXT: [[KW]] T *p0;
- KW T *p0;
-
- // PRINT-NEXT: [[KW]] __attribute__((may_alias)) T *p1;
- KW __attribute__((may_alias)) T *p1;
-
- // PRINT-NEXT: [[KW]] T *p2;
- KW T *p2;
-
- // PRINT-NEXT: [[KW]] __attribute__((deprecated(""))) T *p3;
- // expected-warning@+2 {{'T' is deprecated}}
- // expected-note@+1 2 {{'T' has been explicitly marked deprecated here}}
- KW __attribute__((deprecated(""))) T *p3;
-
- // PRINT-NEXT: [[KW]] T *p4;
- KW T *p4; // expected-warning {{'T' is deprecated}}
-}
-
-// Make sure expanded printing of tag types is turned back off in other parts
-// of a tag declaration. The base class list is checked above.
-
-// CHECK-LABEL: inMembers
-void inMembers() {
- // PRINT-NEXT: [[KW]] T1 {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: };
- KW T1 { int i; };
- // PRINT-NEXT: [[KW]] T2 {
- // PRINT-NEXT: [[KW]] T1 i;
- // PRINT-NEXT: };
- KW T2 { KW T1 i; };
-}
-
-// CHECK-LABEL: inInit
-void inInit() {
- // PRINT-NEXT: [[KW]] T1 {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: };
- KW T1 { int i; };
- // PRINT-NEXT: [[KW]] T2 {
- // PRINT-NEXT: long i;
- // PRINT-NEXT: } t2 = {sizeof([[KW]] T1)};
- KW T2 { long i; } t2 = {sizeof(KW T1)};
-}
-
-#ifdef __cplusplus
-// PRINT-CXX-LABEL: inMemberPtr
-void inMemberPtr() {
- // Under windows, the implicit attribute __single_inheritance used to print
- // between KW and T1 here, but that wasn't faithful to the original source.
- //
- // PRINT-CXX-NEXT: [[KW]] T1 {
- // PRINT-CXX-NEXT: int i;
- // PRINT-CXX-NEXT: };
- KW T1 { int i; };
- // PRINT-CXX-NEXT: [[KW]] T2 {
- // PRINT-CXX-NEXT: } T1::*p;
- KW T2 {} T1::*p;
-}
-#endif
-
-// Check that tag decl groups stay together in decl contexts.
-
-// PRINT-LABEL: DeclGroupAtFileScope {
-// PRINT-NEXT: int i;
-// PRINT-NEXT: } *DeclGroupAtFileScopePtr;
-KW DeclGroupAtFileScope { int i; } *DeclGroupAtFileScopePtr;
-
-// PRINT-LABEL: DeclGroupInMemberList {
-KW DeclGroupInMemberList {
- // PRINT-NEXT: struct T1 {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: } t1;
- struct T1 { int i; } t1;
- // PRINT-NEXT: union T2 {
- // PRINT-NEXT: int i;
- // PRINT-NEXT: } *t20, t21[2];
- union T2 { int i; } *t20, t21[2];
- // PRINT-NEXT: enum T3 {
- // PRINT-NEXT: T30
- // PRINT-NEXT: } t30;
- enum T3 { T30 } t30;
- // PRINT-NEXT: };
-};
-
-// A tag decl group in the tag decl's own member list is exercised in
-// defSelfRef above.
diff --git a/test/Misc/attr-print-emit.cpp b/test/Misc/attr-print-emit.cpp
deleted file mode 100644
index cc7413baf10e..000000000000
--- a/test/Misc/attr-print-emit.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// RUN: %clang_cc1 %s -ast-print | FileCheck %s
-// RUN: %clang -emit-ast -o %t.ast %s
-// RUN: %clang_cc1 %t.ast -ast-print | FileCheck %s
-
-// CHECK: void xla(int a) __attribute__((xray_log_args(1)));
-void xla(int a) __attribute__((xray_log_args(1)));
-
-// CHECK: void *as2(int, int) __attribute__((alloc_size(1, 2)));
-void *as2(int, int) __attribute__((alloc_size(1, 2)));
-// CHECK: void *as1(void *, int) __attribute__((alloc_size(2)));
-void *as1(void *, int) __attribute__((alloc_size(2)));
-
-// CHECK: void fmt(int, const char *, ...) __attribute__((format(printf, 2, 3)));
-void fmt(int, const char *, ...) __attribute__((format(printf, 2, 3)));
-
-// CHECK: char *fmta(int, const char *) __attribute__((format_arg(2)));
-char *fmta(int, const char *) __attribute__((format_arg(2)));
-
-// CHECK: void nn(int *, int *) __attribute__((nonnull(1, 2)));
-void nn(int *, int *) __attribute__((nonnull(1, 2)));
-
-// CHECK: int *aa(int i) __attribute__((alloc_align(1)));
-int *aa(int i) __attribute__((alloc_align(1)));
-
-// CHECK: void ownt(int *, int *) __attribute__((ownership_takes(foo, 1, 2)));
-void ownt(int *, int *) __attribute__((ownership_takes(foo, 1, 2)));
-// CHECK: void ownh(int *, int *) __attribute__((ownership_holds(foo, 1, 2)));
-void ownh(int *, int *) __attribute__((ownership_holds(foo, 1, 2)));
-// CHECK: void ownr(int) __attribute__((ownership_returns(foo, 1)));
-void ownr(int) __attribute__((ownership_returns(foo, 1)));
-
-// CHECK: void awtt(int, int, ...) __attribute__((argument_with_type_tag(foo, 3, 2)));
-void awtt(int, int, ...) __attribute__((argument_with_type_tag(foo, 3, 2)));
-// CHECK: void pwtt(void *, int) __attribute__((pointer_with_type_tag(foo, 1, 2)));
-void pwtt(void *, int) __attribute__((pointer_with_type_tag(foo, 1, 2)));
-
-class C {
- // CHECK: void xla(int a) __attribute__((xray_log_args(2)));
- void xla(int a) __attribute__((xray_log_args(2)));
-
- // CHECK: void *as2(int, int) __attribute__((alloc_size(2, 3)));
- void *as2(int, int) __attribute__((alloc_size(2, 3)));
- // CHECK: void *as1(void *, int) __attribute__((alloc_size(3)));
- void *as1(void *, int) __attribute__((alloc_size(3)));
-
- // CHECK: void fmt(int, const char *, ...) __attribute__((format(printf, 3, 4)));
- void fmt(int, const char *, ...) __attribute__((format(printf, 3, 4)));
-
- // CHECK: char *fmta(int, const char *) __attribute__((format_arg(3)));
- char *fmta(int, const char *) __attribute__((format_arg(3)));
-
- // CHECK: void nn(int *, int *) __attribute__((nonnull(2, 3)));
- void nn(int *, int *) __attribute__((nonnull(2, 3)));
-
- // CHECK: int *aa(int i) __attribute__((alloc_align(2)));
- int *aa(int i) __attribute__((alloc_align(2)));
-
- // CHECK: void ownt(int *, int *) __attribute__((ownership_takes(foo, 2, 3)));
- void ownt(int *, int *) __attribute__((ownership_takes(foo, 2, 3)));
- // CHECK: void ownh(int *, int *) __attribute__((ownership_holds(foo, 2, 3)));
- void ownh(int *, int *) __attribute__((ownership_holds(foo, 2, 3)));
- // CHECK: void ownr(int) __attribute__((ownership_returns(foo, 2)));
- void ownr(int) __attribute__((ownership_returns(foo, 2)));
-
- // CHECK: void awtt(int, int, ...) __attribute__((argument_with_type_tag(foo, 4, 3)));
- void awtt(int, int, ...) __attribute__((argument_with_type_tag(foo, 4, 3)));
- // CHECK: void pwtt(void *, int) __attribute__((pointer_with_type_tag(foo, 2, 3)));
- void pwtt(void *, int) __attribute__((pointer_with_type_tag(foo, 2, 3)));
-};
diff --git a/test/Misc/backend-optimization-failure-nodbg.cpp b/test/Misc/backend-optimization-failure-nodbg.cpp
index aba37de231af..02b0889d0208 100644
--- a/test/Misc/backend-optimization-failure-nodbg.cpp
+++ b/test/Misc/backend-optimization-failure-nodbg.cpp
@@ -4,7 +4,7 @@
// Test verifies optimization failures generated by the backend are handled
// correctly by clang. LLVM tests verify all of the failure conditions.
-void test_switch(int *A, int *B, int Length, int J) { /* expected-warning {{loop not vectorized: failed explicitly specified loop vectorization}} */
+void test_switch(int *A, int *B, int Length, int J) { /* expected-warning {{loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering}} */
#pragma clang loop vectorize(enable) unroll(disable)
for (int i = 0; i < Length; i++) {
switch (A[i]) {
diff --git a/test/Misc/backend-optimization-failure.cpp b/test/Misc/backend-optimization-failure.cpp
index 1657c0cb91d5..18b0ccb74e8c 100644
--- a/test/Misc/backend-optimization-failure.cpp
+++ b/test/Misc/backend-optimization-failure.cpp
@@ -7,7 +7,7 @@
void test_switch(int *A, int *B, int Length,int J) {
#pragma clang loop vectorize(enable) unroll(disable)
for (int i = 0; i < Length; i++) {
-/* expected-warning@-1 {{loop not vectorized: failed explicitly specified loop vectorization}} */ switch (A[i]) {
+/* expected-warning@-1 {{loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering}} */ switch (A[i]) {
case 0:
B[i] = 1;
break;
diff --git a/test/Misc/pragma-attribute-cxx-subject-match-rules.cpp b/test/Misc/pragma-attribute-cxx-subject-match-rules.cpp
deleted file mode 100644
index 18dfb43a384d..000000000000
--- a/test/Misc/pragma-attribute-cxx-subject-match-rules.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=namespace" %s | FileCheck --check-prefix=CHECK-NAMESPACE %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=type_alias" %s | FileCheck --check-prefix=CHECK-TYPE_ALIAS %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=enum" %s | FileCheck --check-prefix=CHECK-ENUM %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=enum_constant" %s | FileCheck --check-prefix=CHECK-ENUM_CONSTANT %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=record" %s | FileCheck --check-prefix=CHECK-RECORD %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=record(unless(is_union))" %s | FileCheck --check-prefix=CHECK-RECORD_UNLESS_IS_UNION %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=field" %s | FileCheck --check-prefix=CHECK-FIELD %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=function" %s | FileCheck --check-prefix=CHECK-FUNCTION %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=hasType(functionType)" %s | FileCheck --check-prefix=CHECK-HAS_TYPE_FUNCTION_TYPE %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=function(is_member)" %s | FileCheck --check-prefix=CHECK-FUNCTION_IS_MEMBER %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=variable" %s | FileCheck --check-prefix=CHECK-VARIABLE %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=variable(is_global)" %s | FileCheck --check-prefix=CHECK-VARIABLE_IS_GLOBAL %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=variable(is_parameter)" %s | FileCheck --check-prefix=CHECK-VARIABLE_IS_PARAMETER %s
-// RUN: %clang_cc1 -std=c++11 -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=variable(unless(is_parameter))" %s | FileCheck --check-prefix=CHECK-VARIABLE_UNLESS_IS_PARAMETER %s
-
-#pragma clang attribute push (__attribute__((annotate("test"))), apply_to = any(SUBJECT))
-
-namespace testNamespace {
-// CHECK-NAMESPACE: NamespaceDecl{{.*}} testNamespace
-// CHECK-NAMESPACE-NEXT: AnnotateAttr{{.*}} "test"
-
-typedef int testTypedef;
-// CHECK-TYPE_ALIAS: TypedefDecl{{.*}} testTypedef
-// CHECK-TYPE_ALIAS-NEXT: BuiltinType
-// CHECK-TYPE_ALIAS-NEXT: AnnotateAttr{{.*}} "test"
-
-using testTypeAlias = double;
-// CHECK-TYPE_ALIAS: TypeAliasDecl{{.*}} testTypeAlias
-// CHECK-TYPE_ALIAS-NEXT: BuiltinType
-// CHECK-TYPE_ALIAS-NEXT: AnnotateAttr{{.*}} "test"
-
-enum testEnum {
- testEnumCase1,
- testEnumCase2
-};
-// CHECK-ENUM: EnumDecl{{.*}} testEnum
-// CHECK-ENUM-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-ENUM_CONSTANT: EnumConstantDecl{{.*}} testEnumCase1
-// CHECK-ENUM_CONSTANT-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-ENUM_CONSTANT: EnumConstantDecl{{.*}} testEnumCase2
-// CHECK-ENUM_CONSTANT-NEXT: AnnotateAttr{{.*}} "test"
-
-struct testStructRecord {
- int testStructRecordField;
-};
-// CHECK-RECORD: CXXRecordDecl{{.*}} testStructRecord
-// CHECK-RECORD: AnnotateAttr{{.*}} "test"
-// CHECK-RECORD_UNLESS_IS_UNION-LABEL: CXXRecordDecl{{.*}} testStructRecord
-// CHECK-RECORD_UNLESS_IS_UNION: AnnotateAttr{{.*}} "test"
-// CHECK-FIELD: FieldDecl{{.*}} testStructRecordField
-// CHECK-FIELD-NEXT: AnnotateAttr{{.*}} "test"
-
-class testClassRecord {
- int testClassRecordField;
-};
-// CHECK-RECORD: CXXRecordDecl{{.*}} testClassRecord
-// CHECK-RECORD: AnnotateAttr{{.*}} "test"
-// CHECK-RECORD_UNLESS_IS_UNION-LABEL: CXXRecordDecl{{.*}} testClassRecord
-// CHECK-RECORD_UNLESS_IS_UNION: AnnotateAttr{{.*}} "test"
-// CHECK-FIELD: FieldDecl{{.*}} testClassRecordField
-// CHECK-FIELD-NEXT: AnnotateAttr{{.*}} "test"
-
-union testUnionRecord {
- int testUnionRecordField;
-};
-// CHECK-RECORD: CXXRecordDecl{{.*}} testUnionRecord
-// CHECK-RECORD: AnnotateAttr{{.*}} "test"
-// CHECK-RECORD_UNLESS_IS_UNION-LABEL: CXXRecordDecl{{.*}} testUnionRecord
-// CHECK-RECORD_UNLESS_IS_UNION-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-FIELD: FieldDecl{{.*}} testUnionRecordField
-// CHECK-FIELD-NEXT: AnnotateAttr{{.*}} "test"
-
-// CHECK-RECORD_UNLESS_IS_UNION-LABEL: CXXRecordDecl
-void testFunctionDecl();
-// CHECK-FUNCTION: FunctionDecl{{.*}} testFunctionDecl
-// CHECK-FUNCTION-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE: FunctionDecl{{.*}} testFunctionDecl
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-
-void testFunctionDecl() { }
-// CHECK-FUNCTION: FunctionDecl{{.*}} testFunctionDecl
-// CHECK-FUNCTION-NEXT: CompoundStmt
-// CHECK-FUNCTION-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE: FunctionDecl{{.*}} testFunctionDecl
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: CompoundStmt
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-
-void (*testFunctionVar)();
-// CHECK-HAS_TYPE_FUNCTION_TYPE: VarDecl{{.*}} testFunctionVar
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-// 'function' should not apply to variables with a function type!
-// CHECK-FUNCTION: VarDecl{{.*}} testFunctionVar
-// CHECK-FUNCTION-NOT: AnnotateAttr{{.*}} "test"
-
-class testMethods {
- testMethods();
- void testMethod();
-};
-void testMethods::testMethod() { }
-void testFunctionNotMethod();
-// CHECK-FUNCTION-LABEL: CXXConstructorDecl{{.*}} testMethods
-// CHECK-FUNCTION-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION_IS_MEMBER: CXXConstructorDecl{{.*}} testMethods
-// CHECK-FUNCTION_IS_MEMBER-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE: CXXConstructorDecl{{.*}} testMethods
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION: CXXMethodDecl{{.*}} testMethod
-// CHECK-FUNCTION-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION_IS_MEMBER: CXXMethodDecl{{.*}} testMethod
-// CHECK-FUNCTION_IS_MEMBER-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE: CXXMethodDecl{{.*}} testMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION: CXXMethodDecl{{.*}} testMethod
-// CHECK-FUNCTION-NEXT: CompoundStmt
-// CHECK-FUNCTION-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION_IS_MEMBER: CXXMethodDecl{{.*}} testMethod
-// CHECK-FUNCTION_IS_MEMBER-NEXT: CompoundStmt
-// CHECK-CXX_METHOD-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE: CXXMethodDecl{{.*}} testMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: CompoundStmt
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-FUNCTION_IS_MEMBER: FunctionDecl{{.*}} testFunctionNotMethod
-// CHECK-FUNCTION_IS_MEMBER-NOT: AnnotateAttr{{.*}} "test"
-
-int testVariable;
-// CHECK-VARIABLE: VarDecl{{.*}} testVariable
-// CHECK-VARIABLE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_GLOBAL-LABEL: VarDecl{{.*}} testVariable
-// CHECK-VARIABLE_IS_GLOBAL-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_PARAMETER-LABEL: VarDecl{{.*}} testVariable
-// CHECK-VARIABLE_IS_PARAMETER-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-LABEL: VarDecl{{.*}} testVariable
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-NEXT: AnnotateAttr{{.*}} "test"
-void testVarFunction(int testParam) {
-// CHECK-VARIABLE: VarDecl{{.*}} testParam
-// CHECK-VARIABLE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_GLOBAL-LABEL: VarDecl{{.*}} testParam
-// CHECK-VARIABLE_IS_GLOBAL-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_PARAMETER-LABEL: VarDecl{{.*}} testParam
-// CHECK-VARIABLE_IS_PARAMETER-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-LABEL: VarDecl{{.*}} testParam
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-NOT: AnnotateAttr{{.*}} "test"
-
- int testLocalVariable;
-// CHECK-VARIABLE: VarDecl{{.*}} testLocalVariable
-// CHECK-VARIABLE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_GLOBAL-LABEL: VarDecl{{.*}} testLocalVariable
-// CHECK-VARIABLE_IS_GLOBAL-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_PARAMETER-LABEL: VarDecl{{.*}} testLocalVariable
-// CHECK-VARIABLE_IS_PARAMETER-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-LABEL: VarDecl{{.*}} testLocalVariable
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-NEXT: AnnotateAttr{{.*}} "test"
-}
-class testVarClass {
- static int testStaticVar;
-};
-// CHECK-VARIABLE: VarDecl{{.*}} testStaticVar
-// CHECK-VARIABLE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_GLOBAL-LABEL: VarDecl{{.*}} testStaticVar
-// CHECK-VARIABLE_IS_GLOBAL-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_IS_PARAMETER-LABEL: VarDecl{{.*}} testStaticVar
-// CHECK-VARIABLE_IS_PARAMETER-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-LABEL: VarDecl{{.*}} testStaticVar
-// CHECK-VARIABLE_UNLESS_IS_PARAMETER-NEXT: AnnotateAttr{{.*}} "test"
-
-
-}
-
-#pragma clang attribute pop
diff --git a/test/Misc/pragma-attribute-objc-subject-match-rules.m b/test/Misc/pragma-attribute-objc-subject-match-rules.m
deleted file mode 100644
index 09ab5e1f33a0..000000000000
--- a/test/Misc/pragma-attribute-objc-subject-match-rules.m
+++ /dev/null
@@ -1,113 +0,0 @@
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump "-DSUBJECT=objc_interface" %s | FileCheck --check-prefix=CHECK-OBJC_INTERFACE %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=objc_protocol" %s | FileCheck --check-prefix=CHECK-OBJC_PROTOCOL %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump "-DSUBJECT=objc_category" %s | FileCheck --check-prefix=CHECK-OBJC_CATEGORY %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=objc_method" %s | FileCheck --check-prefix=CHECK-OBJC_METHOD %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=objc_method(is_instance)" %s | FileCheck --check-prefix=CHECK-OBJC_METHOD_IS_INSTANCE %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=field" %s | FileCheck --check-prefix=CHECK-FIELD %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=objc_property" %s | FileCheck --check-prefix=CHECK-OBJC_PROPERTY %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=block" %s | FileCheck --check-prefix=CHECK-BLOCK %s
-// RUN: %clang_cc1 -fblocks -fobjc-arc -Wno-objc-root-class -fsyntax-only -ast-dump -ast-dump-filter test "-DSUBJECT=hasType(functionType)" %s | FileCheck --check-prefix=CHECK-HAS_TYPE_FUNCTION_TYPE %s
-
-#pragma clang attribute push (__attribute__((annotate("test"))), apply_to = any(SUBJECT))
-
-@interface testInterface
-@end
-// CHECK-OBJC_INTERFACE: ObjCInterfaceDecl{{.*}} testInterface
-// CHECK-OBJC_INTERFACE-NEXT: AnnotateAttr{{.*}} "test"
-
-@interface testInterface ()
-@end
-// CHECK-OBJC_INTERFACE: ObjCCategoryDecl
-// CHECK-OBJC_INTERFACE-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_CATEGORY: ObjCCategoryDecl
-// CHECK-OBJC_CATEGORY-NEXT: ObjCInterface
-// CHECK-OBJC_CATEGORY-NEXT: AnnotateAttr{{.*}} "test"
-
-@interface testInterface (testCategory)
-@end
-// CHECK-OBJC_INTERFACE: ObjCCategoryDecl{{.*}} testCategory
-// CHECK-OBJC_INTERFACE-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_CATEGORY: ObjCCategoryDecl{{.*}} testCategory
-// CHECK-OBJC_CATEGORY-NEXT: ObjCInterface
-// CHECK-OBJC_CATEGORY-NEXT: AnnotateAttr{{.*}} "test"
-
-// CHECK-OBJC_INTERFACE-LABEL: ObjCProtocolDecl
-@protocol testProtocol
-@end
-// CHECK-OBJC_PROTOCOL: ObjCProtocolDecl{{.*}} testProtocol
-// CHECK-OBJC_PROTOCOL-NEXT: AnnotateAttr{{.*}} "test"
-
-@interface methodContainer
-- (void) testInstanceMethod;
-+ (void) testClassMethod;
-@end
-// CHECK-OBJC_METHOD: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-OBJC_METHOD-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-OBJC_METHOD-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD_IS_INSTANCE: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-OBJC_METHOD_IS_INSTANCE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD_IS_INSTANCE-LABEL: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-OBJC_METHOD_IS_INSTANCE-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE-LABEL: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE-LABEL: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NOT: AnnotateAttr{{.*}} "test"
-
-@implementation methodContainer
-- (void) testInstanceMethod { }
-+ (void) testClassMethod { }
-@end
-// CHECK-OBJC_METHOD: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-OBJC_METHOD-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD-NEXT: CompoundStmt
-// CHECK-OBJC_METHOD-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-OBJC_METHOD-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD-NEXT: CompoundStmt
-// CHECK-OBJC_METHOD-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD_IS_INSTANCE-LABEL: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-OBJC_METHOD_IS_INSTANCE-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD_IS_INSTANCE-NEXT: ImplicitParamDecl
-// CHECK-OBJC_METHOD_IS_INSTANCE-NEXT: CompoundStmt
-// CHECK-OBJC_METHOD_IS_INSTANCE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-OBJC_METHOD_IS_INSTANCE: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-OBJC_METHOD_IS_INSTANCE-NOT: AnnotateAttr{{.*}} "test"
-
-// CHECK-HAS_TYPE_FUNCTION_TYPE-LABEL: ObjCMethodDecl{{.*}} testInstanceMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NOT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE-LABEL: ObjCMethodDecl{{.*}} testClassMethod
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NOT: AnnotateAttr{{.*}} "test"
-@interface propertyContainer {
- int testIvar;
-// CHECK-FIELD: ObjCIvarDecl{{.*}} testIvar
-// CHECK-FIELD-NEXT: AnnotateAttr{{.*}} "test"
-
-}
-@property int testProperty;
-// CHECK-OBJC_PROPERTY: ObjCPropertyDecl{{.*}} testProperty
-// CHECK-OBJC_PROPERTY-NEXT: AnnotateAttr{{.*}} "test"
-
-@end
-
-void (^testBlockVar)();
-// CHECK-BLOCK: VarDecl{{.*}} testBlockVar
-// CHECK-BLOCK-NOT: AnnotateAttr{{.*}} "test"
-
-void testBlock() {
- (void)(^ { });
-}
-// CHECK-BLOCK-LABEL: BlockDecl
-// CHECK-BLOCK-NEXT: CompoundStmt
-// CHECK-BLOCK-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE-LABEL: FunctionDecl{{.*}} testBlock
-// CHECK-HAS_TYPE_FUNCTION_TYPE: BlockDecl
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: CompoundStmt
-// The attribute applies to function, but not to block:
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NEXT: AnnotateAttr{{.*}} "test"
-// CHECK-HAS_TYPE_FUNCTION_TYPE-NOT: AnnotateAttr{{.*}} "test"
-
-
-#pragma clang attribute pop
diff --git a/test/Misc/pragma-attribute-supported-attributes-list.test b/test/Misc/pragma-attribute-supported-attributes-list.test
index 4a3846be8d9b..9a6bcca1bd36 100644
--- a/test/Misc/pragma-attribute-supported-attributes-list.test
+++ b/test/Misc/pragma-attribute-supported-attributes-list.test
@@ -2,54 +2,107 @@
// The number of supported attributes should never go down!
-// CHECK: #pragma clang attribute supports 72 attributes:
+// CHECK: #pragma clang attribute supports the following attributes:
// CHECK-NEXT: AMDGPUFlatWorkGroupSize (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumSGPR (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumVGPR (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUWavesPerEU (SubjectMatchRule_function)
// CHECK-NEXT: AVRSignal (SubjectMatchRule_function)
// CHECK-NEXT: AbiTag (SubjectMatchRule_record_not_is_union, SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_namespace)
+// CHECK-NEXT: Alias (SubjectMatchRule_function, SubjectMatchRule_variable_is_global)
// CHECK-NEXT: AlignValue (SubjectMatchRule_variable, SubjectMatchRule_type_alias)
// CHECK-NEXT: AllocSize (SubjectMatchRule_function)
+// CHECK-NEXT: AlwaysDestroy (SubjectMatchRule_variable)
+// CHECK-NEXT: AlwaysInline (SubjectMatchRule_function)
// CHECK-NEXT: Annotate ()
// CHECK-NEXT: AnyX86NoCfCheck (SubjectMatchRule_hasType_functionType)
+// CHECK-NEXT: ArcWeakrefUnavailable (SubjectMatchRule_objc_interface)
// CHECK-NEXT: AssumeAligned (SubjectMatchRule_objc_method, SubjectMatchRule_function)
// CHECK-NEXT: Availability ((SubjectMatchRule_record, SubjectMatchRule_enum, SubjectMatchRule_enum_constant, SubjectMatchRule_field, SubjectMatchRule_function, SubjectMatchRule_namespace, SubjectMatchRule_objc_category, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_objc_protocol, SubjectMatchRule_record, SubjectMatchRule_type_alias, SubjectMatchRule_variable))
+// CHECK-NEXT: CFAuditedTransfer (SubjectMatchRule_function)
+// CHECK-NEXT: CFConsumed (SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: CFUnknownTransfer (SubjectMatchRule_function)
// CHECK-NEXT: CPUDispatch (SubjectMatchRule_function)
// CHECK-NEXT: CPUSpecific (SubjectMatchRule_function)
+// CHECK-NEXT: CUDAConstant (SubjectMatchRule_variable)
+// CHECK-NEXT: CUDADevice (SubjectMatchRule_function, SubjectMatchRule_variable)
+// CHECK-NEXT: CUDAGlobal (SubjectMatchRule_function)
+// CHECK-NEXT: CUDAHost (SubjectMatchRule_function)
+// CHECK-NEXT: CUDALaunchBounds (SubjectMatchRule_objc_method, SubjectMatchRule_hasType_functionType)
+// CHECK-NEXT: CUDAShared (SubjectMatchRule_variable)
// CHECK-NEXT: CXX11NoReturn (SubjectMatchRule_function)
// CHECK-NEXT: CallableWhen (SubjectMatchRule_function_is_member)
+// CHECK-NEXT: Capability (SubjectMatchRule_record, SubjectMatchRule_type_alias)
// CHECK-NEXT: CarriesDependency (SubjectMatchRule_variable_is_parameter, SubjectMatchRule_objc_method, SubjectMatchRule_function)
+// CHECK-NEXT: Cold (SubjectMatchRule_function)
+// CHECK-NEXT: Common (SubjectMatchRule_variable)
+// CHECK-NEXT: Constructor (SubjectMatchRule_function)
// CHECK-NEXT: Consumable (SubjectMatchRule_record)
+// CHECK-NEXT: ConsumableAutoCast (SubjectMatchRule_record)
+// CHECK-NEXT: ConsumableSetOnRead (SubjectMatchRule_record)
// CHECK-NEXT: Convergent (SubjectMatchRule_function)
// CHECK-NEXT: DLLExport (SubjectMatchRule_function, SubjectMatchRule_variable, SubjectMatchRule_record, SubjectMatchRule_objc_interface)
// CHECK-NEXT: DLLImport (SubjectMatchRule_function, SubjectMatchRule_variable, SubjectMatchRule_record, SubjectMatchRule_objc_interface)
+// CHECK-NEXT: Destructor (SubjectMatchRule_function)
// CHECK-NEXT: DisableTailCalls (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: EnableIf (SubjectMatchRule_function)
// CHECK-NEXT: EnumExtensibility (SubjectMatchRule_enum)
+// CHECK-NEXT: ExcludeFromExplicitInstantiation (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
// CHECK-NEXT: ExternalSourceSymbol ((SubjectMatchRule_record, SubjectMatchRule_enum, SubjectMatchRule_enum_constant, SubjectMatchRule_field, SubjectMatchRule_function, SubjectMatchRule_namespace, SubjectMatchRule_objc_category, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_objc_protocol, SubjectMatchRule_record, SubjectMatchRule_type_alias, SubjectMatchRule_variable))
// CHECK-NEXT: FlagEnum (SubjectMatchRule_enum)
// CHECK-NEXT: Flatten (SubjectMatchRule_function)
+// CHECK-NEXT: GNUInline (SubjectMatchRule_function)
+// CHECK-NEXT: Hot (SubjectMatchRule_function)
+// CHECK-NEXT: IBAction (SubjectMatchRule_objc_method_is_instance)
// CHECK-NEXT: IFunc (SubjectMatchRule_function)
+// CHECK-NEXT: InitPriority (SubjectMatchRule_variable)
// CHECK-NEXT: InternalLinkage (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
// CHECK-NEXT: LTOVisibilityPublic (SubjectMatchRule_record)
+// CHECK-NEXT: Lockable (SubjectMatchRule_record)
+// CHECK-NEXT: MSStruct (SubjectMatchRule_record)
// CHECK-NEXT: MicroMips (SubjectMatchRule_function)
+// CHECK-NEXT: MinSize (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: MinVectorWidth (SubjectMatchRule_function)
+// CHECK-NEXT: Mips16 (SubjectMatchRule_function)
// CHECK-NEXT: MipsLongCall (SubjectMatchRule_function)
// CHECK-NEXT: MipsShortCall (SubjectMatchRule_function)
+// CHECK-NEXT: NSConsumed (SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: NSConsumesSelf (SubjectMatchRule_objc_method)
+// CHECK-NEXT: Naked (SubjectMatchRule_function)
+// CHECK-NEXT: NoCommon (SubjectMatchRule_variable)
// CHECK-NEXT: NoDebug (SubjectMatchRule_hasType_functionType, SubjectMatchRule_objc_method, SubjectMatchRule_variable_not_is_parameter)
+// CHECK-NEXT: NoDestroy (SubjectMatchRule_variable)
// CHECK-NEXT: NoDuplicate (SubjectMatchRule_function)
// CHECK-NEXT: NoEscape (SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: NoInline (SubjectMatchRule_function)
+// CHECK-NEXT: NoInstrumentFunction (SubjectMatchRule_function)
// CHECK-NEXT: NoMicroMips (SubjectMatchRule_function)
+// CHECK-NEXT: NoMips16 (SubjectMatchRule_function)
// CHECK-NEXT: NoSanitize (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_variable_is_global)
// CHECK-NEXT: NoSanitizeSpecific (SubjectMatchRule_function, SubjectMatchRule_variable_is_global)
// CHECK-NEXT: NoSplitStack (SubjectMatchRule_function)
// CHECK-NEXT: NoStackProtector (SubjectMatchRule_function)
+// CHECK-NEXT: NoThreadSafetyAnalysis (SubjectMatchRule_function)
// CHECK-NEXT: NoThrow (SubjectMatchRule_function)
// CHECK-NEXT: NotTailCalled (SubjectMatchRule_function)
+// CHECK-NEXT: OSConsumed (SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: OSReturnsNotRetained (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: OSReturnsRetained (SubjectMatchRule_function, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: OSReturnsRetainedOnNonZero (SubjectMatchRule_variable_is_parameter)
+// CHECK-NEXT: OSReturnsRetainedOnZero (SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: ObjCBoxable (SubjectMatchRule_record)
+// CHECK-NEXT: ObjCBridge (SubjectMatchRule_record, SubjectMatchRule_type_alias)
+// CHECK-NEXT: ObjCBridgeMutable (SubjectMatchRule_record)
+// CHECK-NEXT: ObjCBridgeRelated (SubjectMatchRule_record)
+// CHECK-NEXT: ObjCException (SubjectMatchRule_objc_interface)
+// CHECK-NEXT: ObjCExplicitProtocolImpl (SubjectMatchRule_objc_protocol)
+// CHECK-NEXT: ObjCExternallyRetained (SubjectMatchRule_variable_not_is_parameter, SubjectMatchRule_function, SubjectMatchRule_block, SubjectMatchRule_objc_method)
// CHECK-NEXT: ObjCMethodFamily (SubjectMatchRule_objc_method)
+// CHECK-NEXT: ObjCPreciseLifetime (SubjectMatchRule_variable)
+// CHECK-NEXT: ObjCRequiresPropertyDefs (SubjectMatchRule_objc_interface)
// CHECK-NEXT: ObjCRequiresSuper (SubjectMatchRule_objc_method)
+// CHECK-NEXT: ObjCReturnsInnerPointer (SubjectMatchRule_objc_method, SubjectMatchRule_objc_property)
+// CHECK-NEXT: ObjCRootClass (SubjectMatchRule_objc_interface)
// CHECK-NEXT: ObjCRuntimeName (SubjectMatchRule_objc_interface, SubjectMatchRule_objc_protocol)
// CHECK-NEXT: ObjCRuntimeVisible (SubjectMatchRule_objc_interface)
// CHECK-NEXT: ObjCSubclassingRestricted (SubjectMatchRule_objc_interface)
@@ -60,11 +113,16 @@
// CHECK-NEXT: ParamTypestate (SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: PassObjectSize (SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: RenderScriptKernel (SubjectMatchRule_function)
+// CHECK-NEXT: ReqdWorkGroupSize (SubjectMatchRule_function)
// CHECK-NEXT: RequireConstantInit (SubjectMatchRule_variable_is_global)
+// CHECK-NEXT: Restrict (SubjectMatchRule_function)
// CHECK-NEXT: ReturnTypestate (SubjectMatchRule_function, SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: ReturnsNonNull (SubjectMatchRule_objc_method, SubjectMatchRule_function)
+// CHECK-NEXT: ReturnsTwice (SubjectMatchRule_function)
+// CHECK-NEXT: ScopedLockable (SubjectMatchRule_record)
// CHECK-NEXT: Section (SubjectMatchRule_function, SubjectMatchRule_variable_is_global, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property)
// CHECK-NEXT: SetTypestate (SubjectMatchRule_function_is_member)
+// CHECK-NEXT: SpeculativeLoadHardening (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: SwiftContext (SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: SwiftErrorResult (SubjectMatchRule_variable_is_parameter)
// CHECK-NEXT: SwiftIndirectResult (SubjectMatchRule_variable_is_parameter)
@@ -72,6 +130,13 @@
// CHECK-NEXT: Target (SubjectMatchRule_function)
// CHECK-NEXT: TestTypestate (SubjectMatchRule_function_is_member)
// CHECK-NEXT: TrivialABI (SubjectMatchRule_record)
+// CHECK-NEXT: VecReturn (SubjectMatchRule_record)
+// CHECK-NEXT: VecTypeHint (SubjectMatchRule_function)
+// CHECK-NEXT: WarnUnused (SubjectMatchRule_record)
// CHECK-NEXT: WarnUnusedResult (SubjectMatchRule_objc_method, SubjectMatchRule_enum, SubjectMatchRule_record, SubjectMatchRule_hasType_functionType)
+// CHECK-NEXT: Weak (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
+// CHECK-NEXT: WeakRef (SubjectMatchRule_variable, SubjectMatchRule_function)
+// CHECK-NEXT: WorkGroupSizeHint (SubjectMatchRule_function)
// CHECK-NEXT: XRayInstrument (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: XRayLogArgs (SubjectMatchRule_function, SubjectMatchRule_objc_method)
+// CHECK-NEXT: End of supported attributes.
diff --git a/test/Misc/target-invalid-cpu-note.c b/test/Misc/target-invalid-cpu-note.c
index f2b36d44b9f4..babfaa9ffcb4 100644
--- a/test/Misc/target-invalid-cpu-note.c
+++ b/test/Misc/target-invalid-cpu-note.c
@@ -16,7 +16,7 @@
// X86-SAME: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont,
// X86-SAME: nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge,
// X86-SAME: core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512,
-// X86-SAME: skx, cannonlake, icelake-client, icelake-server, knl, knm, lakemont, k6, k6-2, k6-3,
+// X86-SAME: skx, cascadelake, cannonlake, icelake-client, icelake-server, knl, knm, lakemont, k6, k6-2, k6-3,
// X86-SAME: athlon, athlon-tbird, athlon-xp, athlon-mp, athlon-4, k8, athlon64,
// X86-SAME: athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10,
// X86-SAME: barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1,
@@ -27,7 +27,7 @@
// X86_64: note: valid target CPU values are: nocona, core2, penryn, bonnell,
// X86_64-SAME: atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere,
// X86_64-SAME: sandybridge, corei7-avx, ivybridge, core-avx-i, haswell,
-// X86_64-SAME: core-avx2, broadwell, skylake, skylake-avx512, skx, cannonlake,
+// X86_64-SAME: core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cannonlake,
// X86_64-SAME: icelake-client, icelake-server, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3,
// X86_64-SAME: athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1,
// X86_64-SAME: btver2, bdver1, bdver2, bdver3, bdver4, znver1, x86-64
@@ -84,10 +84,6 @@
// PPC-SAME: pwr7, power8, pwr8, power9, pwr9, powerpc, ppc, powerpc64, ppc64,
// PPC-SAME: powerpc64le, ppc64le
-// RUN: not %clang_cc1 -triple nios2--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix NIOS
-// NIOS: error: unknown target CPU 'not-a-cpu'
-// NIOS: note: valid target CPU values are: nios2r1, nios2r2
-
// RUN: not %clang_cc1 -triple mips--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix MIPS
// MIPS: error: unknown target CPU 'not-a-cpu'
// MIPS: note: valid target CPU values are: mips1, mips2, mips3, mips4, mips5,
@@ -100,7 +96,7 @@
// RUN: not %clang_cc1 -triple hexagon--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix HEXAGON
// HEXAGON: error: unknown target CPU 'not-a-cpu'
-// HEXAGON: note: valid target CPU values are: hexagonv4, hexagonv5, hexagonv55,
+// HEXAGON: note: valid target CPU values are: hexagonv5, hexagonv55,
// HEXAGON-SAME: hexagonv60, hexagonv62, hexagonv65
// RUN: not %clang_cc1 -triple bpf--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix BPF
diff --git a/test/Misc/warning-flags.c b/test/Misc/warning-flags.c
index 4f9469f8e582..05172b220859 100644
--- a/test/Misc/warning-flags.c
+++ b/test/Misc/warning-flags.c
@@ -18,7 +18,7 @@ This test serves two purposes:
The list of warnings below should NEVER grow. It should gradually shrink to 0.
-CHECK: Warnings without flags (76):
+CHECK: Warnings without flags (74):
CHECK-NEXT: ext_excess_initializers
CHECK-NEXT: ext_excess_initializers_in_char_array_initializer
CHECK-NEXT: ext_expected_semi_decl_list
@@ -29,7 +29,6 @@ CHECK-NEXT: ext_missing_whitespace_after_macro_name
CHECK-NEXT: ext_new_paren_array_nonconst
CHECK-NEXT: ext_plain_complex
CHECK-NEXT: ext_template_arg_extra_parens
-CHECK-NEXT: ext_typecheck_comparison_of_pointer_integer
CHECK-NEXT: ext_typecheck_cond_incompatible_operands
CHECK-NEXT: ext_typecheck_ordered_comparison_of_pointer_integer
CHECK-NEXT: ext_using_undefined_std
@@ -40,7 +39,6 @@ CHECK-NEXT: warn_accessor_property_type_mismatch
CHECK-NEXT: warn_arcmt_nsalloc_realloc
CHECK-NEXT: warn_asm_label_on_auto_decl
CHECK-NEXT: warn_c_kext
-CHECK-NEXT: warn_call_to_pure_virtual_member_function_from_ctor_dtor
CHECK-NEXT: warn_call_wrong_number_of_arguments
CHECK-NEXT: warn_case_empty_range
CHECK-NEXT: warn_char_constant_too_large