42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TableGen
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TableGen
		
	
	
	
| // RUN: clang-tblgen -gen-clang-diag-groups -I%S %s -o /dev/null 2>&1 | FileCheck --strict-whitespace %s
 | |
| include "DiagnosticBase.inc"
 | |
| 
 | |
| def NamedGroup : DiagGroup<"name">;
 | |
| 
 | |
| def InNamedGroup : Warning<"">, InGroup<DiagGroup<"name">>;
 | |
| //      CHECK: tg-fixits.td:[[@LINE-1]]:41: error: group 'name' is referred to anonymously
 | |
| // CHECK-NEXT: {{^def InNamedGroup : Warning<"">, InGroup<DiagGroup<"name">>;}}
 | |
| // CHECK-NEXT: {{^                                ~~~~~~~~\^~~~~~~~~~~~~~~~~~}}
 | |
| // CHECK-NEXT: {{^                                InGroup<NamedGroup>}}
 | |
| 
 | |
| def Wrapped : Warning<"">, InGroup<DiagGroup<
 | |
|   "name">>;
 | |
| //      CHECK: tg-fixits.td:[[@LINE-2]]:36: error: group 'name' is referred to anonymously
 | |
| // CHECK-NEXT: {{^def Wrapped : Warning<"">, InGroup<DiagGroup<}}
 | |
| // CHECK-NEXT: {{^                           ~~~~~~~~\^~~~~~~~~~}}
 | |
| // CHECK-NEXT: {{^                           InGroup<NamedGroup>}}
 | |
| 
 | |
| def AlsoWrapped : Warning<"">, InGroup<
 | |
|   DiagGroup<"name">>;
 | |
| //      CHECK: tg-fixits.td:[[@LINE-1]]:3: error: group 'name' is referred to anonymously
 | |
| // CHECK-NEXT: {{^  DiagGroup<"name">>;}}
 | |
| // CHECK-NEXT: {{^~~\^~~~~~~~~~~~~~~~~~}}
 | |
| // CHECK-NEXT: {{^InGroup<NamedGroup>}}
 | |
| 
 | |
| // The following lines contain hard tabs (\t); do not change this!
 | |
| def HardTabs : Warning<"">,
 | |
| 	InGroup<	DiagGroup<"name">	>;
 | |
| //      CHECK: tg-fixits.td:[[@LINE-1]]:11: error: group 'name' is referred to anonymously
 | |
| // CHECK-NEXT: {{^        InGroup<        DiagGroup<"name">       >;}}
 | |
| // CHECK-NEXT: {{^        ~~~~~~~~~~~~~~~~\^~~~~~~~~~~~~~~~~~~~~~~~~}}
 | |
| // CHECK-NEXT: {{^        InGroup<NamedGrop>}}
 | |
| 
 | |
| // The following line has Unicode characters in it; do not change them!
 | |
| // FIXME: For now, we just give up on printing carets/ranges/fixits for
 | |
| // lines with Unicode in them, because SMDiagnostic don't keep a byte<->column
 | |
| // map around to line things up like Clang does.
 | |
| def Unicode : Warning<"ユニコード">, InGroup<DiagGroup<"name">>;
 | |
| //      CHECK: tg-fixits.td:[[@LINE-1]]:51: error: group 'name' is referred to anonymously
 | |
| // CHECK-NEXT: def Unicode : Warning<"{{[^"]+}}">, InGroup<DiagGroup<"name">>;
 | |
| // CHECK-NEXT: note:
 |