|  | // RUN: not clang-tblgen -gen-clang-diags-defs -I%S %s -o /dev/null 2>&1 | FileCheck %s | 
|  | include "DiagnosticBase.inc" | 
|  |  | 
|  | // Ensure we catch a capital letter at the start of a diagnostic. | 
|  | def zero : Error< | 
|  | "This is bad">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not start with a capital letter; 'This' is invalid | 
|  |  | 
|  | // Test that we also correctly handle selections. | 
|  | def one : Error< | 
|  | "%select{|or}0 That">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not start with a capital letter; 'That' is invalid | 
|  | def two : Error< | 
|  | "%select{as does|}0 This">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not start with a capital letter; 'This' is invalid | 
|  | def three : Error< | 
|  | "%select{and||of course}0 Whatever">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not start with a capital letter; 'Whatever' is invalid | 
|  |  | 
|  | // Test that we accept the following cases. | 
|  | def four : Error< | 
|  | "this is fine">; | 
|  | def five : Error< | 
|  | "%select{this|is|also}0 Fine">; | 
|  | def six : Error< | 
|  | "%select{this|is|also|}0 fine">; | 
|  | def seven : Error< | 
|  | "%select{ARC|C|C23|C++14|OpenMP}0 are also fine">; | 
|  |  | 
|  | // Next, test that we catch punctuation at the end of the diagnostic. | 
|  | def eight : Error< | 
|  | "punctuation is bad.">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  | def nine : Error< | 
|  | "it's really bad!">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '!' is invalid | 
|  | def ten : Error< | 
|  | "we also catch %select{punctuation.|in select}0">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  | def eleven : Error< | 
|  | "and %select{|here.}0">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  | def twelve : Error< | 
|  | "and %select{here.|}0">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  | def thirteen : Error< | 
|  | "and even %select{|here.|}0">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  | def fourteen : Error< | 
|  | "and %select{here}0.">; | 
|  | // CHECK-DAG: wording-errors.td:[[@LINE-2]]:5: error: Diagnostics should not end with punctuation; '.' is invalid | 
|  |  | 
|  | // Test that we accept the following cases. | 
|  | def fifteen : Error< | 
|  | "question marks are intentionally okay?">; |