rename -parse-ast-print to -ast-print
rename -parse-ast-dump to -ast-dump
remove -parse-ast, which is redundant with -fsyntax-only



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42852 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index d921248..e5185d0 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -50,10 +50,9 @@
 
 enum ProgActions {
   EmitLLVM,                     // Emit a .ll file.
-  ParseASTPrint,                // Parse ASTs and print them.
-  ParseASTDump,                 // Parse ASTs and dump them.
-  ParseASTView,                 // Parse ASTs and view them in Graphviz.
-  BuildAST,                     // Parse ASTs.  
+  ASTPrint,                     // Parse ASTs and print them.
+  ASTDump,                      // Parse ASTs and dump them.
+  ASTView,                      // Parse ASTs and view them in Graphviz.
   ParseCFGDump,                 // Parse ASTS. Build CFGs. Print CFGs.
   ParseCFGView,                 // Parse ASTS. Build CFGs. View CFGs.
   AnalysisLiveVariables,        // Print results of live-variable analysis.
@@ -84,14 +83,12 @@
                         "Run parser and perform semantic analysis"),
              clEnumValN(ParsePrintCallbacks, "parse-print-callbacks",
                         "Run parser and print each callback invoked"),
-             clEnumValN(BuildAST, "parse-ast",
-                        "Run parser and build ASTs"),
-             clEnumValN(ParseASTPrint, "parse-ast-print",
-                        "Run parser, build ASTs, then print ASTs"),
-             clEnumValN(ParseASTDump, "parse-ast-dump",
-                        "Run parser, build ASTs, then dump them"),
-             clEnumValN(ParseASTView, "parse-ast-view",
-                        "Run parser, build ASTs, and view them with GraphViz."),
+             clEnumValN(ASTPrint, "ast-print",
+                        "Build ASTs and then pretty-print them"),
+             clEnumValN(ASTDump, "ast-dump",
+                        "Build ASTs and then debug dump them"),
+             clEnumValN(ASTView, "parse-ast-view",
+                        "Build ASTs and view them with GraphViz."),
              clEnumValN(ParseCFGDump, "dump-cfg",
                         "Run parser, then build and print CFGs."),
              clEnumValN(ParseCFGView, "view-cfg",
@@ -764,19 +761,18 @@
     break;
       
   case ParseSyntaxOnly:              // -fsyntax-only
-  case BuildAST:
     Consumer = new ASTConsumer();
     break;
 
-  case ParseASTPrint:
+  case ASTPrint:
     Consumer = CreateASTPrinter();
     break;
 
-  case ParseASTDump:
+  case ASTDump:
     Consumer = CreateASTDumper();
     break;
 
-  case ParseASTView:
+  case ASTView:
     Consumer = CreateASTViewer();      
     break;
 
diff --git a/test/Lexer/block_cmt_end.c b/test/Lexer/block_cmt_end.c
index 444500d..30e6d92 100644
--- a/test/Lexer/block_cmt_end.c
+++ b/test/Lexer/block_cmt_end.c
@@ -3,7 +3,7 @@
   RUN: clang -E %s | grep foo &&
   RUN: clang -E %s | not grep abc &&
   RUN: clang -E %s | not grep xyz &&
-  RUN: clang -parse-ast -verify %s
+  RUN: clang -fsyntax-only -verify %s
  */
 
 // This is a simple comment, /*/ does not end a comment, the trailing */ does.
diff --git a/test/Lexer/constants.c b/test/Lexer/constants.c
index 5d0f301..6d7ca19 100644
--- a/test/Lexer/constants.c
+++ b/test/Lexer/constants.c
@@ -1,4 +1,4 @@
-/* RUN: clang -parse-ast -verify %s
+/* RUN: clang -fsyntax-only -verify %s
  */
 
 int x = 000000080;  /* expected-error {{invalid digit}} */
diff --git a/test/Lexer/cxx0x_keyword.cpp b/test/Lexer/cxx0x_keyword.cpp
index 267416a..dd889a1 100644
--- a/test/Lexer/cxx0x_keyword.cpp
+++ b/test/Lexer/cxx0x_keyword.cpp
@@ -1,2 +1,2 @@
-// RUN: clang -parse-ast -verify -std=c++0x %s 2>&1
+// RUN: clang -fsyntax-only -verify -std=c++0x %s 2>&1
 int static_assert; /* expected-error {{expected identifier or '('}}} */
diff --git a/test/Parser/CompoundStmtScope.c b/test/Parser/CompoundStmtScope.c
index 4d1da43..9aadbce 100644
--- a/test/Parser/CompoundStmtScope.c
+++ b/test/Parser/CompoundStmtScope.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int foo() {
   {
diff --git a/test/Parser/argument_redef.c b/test/Parser/argument_redef.c
index 2dce5ab..d831d48 100644
--- a/test/Parser/argument_redef.c
+++ b/test/Parser/argument_redef.c
@@ -1,4 +1,4 @@
-/* RUN: clang -parse-ast -verify %s
+/* RUN: clang -fsyntax-only -verify %s
 */
 
 int foo(int A) { /* expected-error {{previous definition is here}} */
diff --git a/test/Parser/attributes.c b/test/Parser/attributes.c
index ecd1237..7161d6c 100644
--- a/test/Parser/attributes.c
+++ b/test/Parser/attributes.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s -pedantic
+// RUN: clang -fsyntax-only -verify %s -pedantic
 
 static __inline void __attribute__((__always_inline__, __nodebug__)) // expected-warning {{extension used}}
 foo (void)
diff --git a/test/Parser/bad-control.c b/test/Parser/bad-control.c
index caad1f1..fab9fa3 100644
--- a/test/Parser/bad-control.c
+++ b/test/Parser/bad-control.c
@@ -1,4 +1,4 @@
-/* RUN: clang -parse-ast -verify %s
+/* RUN: clang -fsyntax-only -verify %s
 */
 int foo() { 
   break; /* expected-error {{'break' statement not in loop or switch statement}} */
diff --git a/test/Parser/builtin_classify_type.c b/test/Parser/builtin_classify_type.c
index 500c16a..6bed9ec 100644
--- a/test/Parser/builtin_classify_type.c
+++ b/test/Parser/builtin_classify_type.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 struct foo { int a; };
 
diff --git a/test/Parser/builtin_types_compatible.c b/test/Parser/builtin_types_compatible.c
index 096b400..b820784 100644
--- a/test/Parser/builtin_types_compatible.c
+++ b/test/Parser/builtin_types_compatible.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 extern int funcInt(int);
 extern float funcFloat(float);
diff --git a/test/Parser/char-literal-printing.c b/test/Parser/char-literal-printing.c
index 6719659..990b8f7 100644
--- a/test/Parser/char-literal-printing.c
+++ b/test/Parser/char-literal-printing.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast-print %s
+// RUN: clang -ast-print %s
 
 #include <stddef.h>
 
diff --git a/test/Parser/check_cast.c b/test/Parser/check_cast.c
index 8c329fc..c69f0f0 100644
--- a/test/Parser/check_cast.c
+++ b/test/Parser/check_cast.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 struct foo {
   int a;
 };
diff --git a/test/Parser/compound_literal.c b/test/Parser/compound_literal.c
index a5383cc..c6d665c 100644
--- a/test/Parser/compound_literal.c
+++ b/test/Parser/compound_literal.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 int main() {
   char *s;
   s = (char []){"whatever"}; 
diff --git a/test/Parser/cxx-reference.cpp b/test/Parser/cxx-reference.cpp
index 9554379..4f3b58c 100644
--- a/test/Parser/cxx-reference.cpp
+++ b/test/Parser/cxx-reference.cpp
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 extern char *bork;
 char *& bar = bork;
diff --git a/test/Parser/function-decls.c b/test/Parser/function-decls.c
index ef93756..3493baa 100644
--- a/test/Parser/function-decls.c
+++ b/test/Parser/function-decls.c
@@ -1,4 +1,4 @@
-/* RUN: clang %s -parse-ast-print
+/* RUN: clang %s -ast-print
  */
 
 void foo() {
diff --git a/test/Parser/goto-ident.c b/test/Parser/goto-ident.c
index 7231445..87d6ea5 100644
--- a/test/Parser/goto-ident.c
+++ b/test/Parser/goto-ident.c
@@ -1,4 +1,4 @@
-/* RUN: clang -parse-ast -verify %s
+/* RUN: clang -fsyntax-only -verify %s
 */
 
 void foo() { 
diff --git a/test/Parser/if-scope-c90.c b/test/Parser/if-scope-c90.c
index 1623eb0..43a3676 100644
--- a/test/Parser/if-scope-c90.c
+++ b/test/Parser/if-scope-c90.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify --std=c90 %s
+// RUN: clang -fsyntax-only -verify --std=c90 %s
 
 int f (int z)
 { 
diff --git a/test/Parser/if-scope-c99.c b/test/Parser/if-scope-c99.c
index c6ce9b6..41d7ae2 100644
--- a/test/Parser/if-scope-c99.c
+++ b/test/Parser/if-scope-c99.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify --std=c99 %s
+// RUN: clang -fsyntax-only -verify --std=c99 %s
 
 int f (int z)
 { 
diff --git a/test/Parser/implicit-casts.c b/test/Parser/implicit-casts.c
index 320370d..a07155e 100644
--- a/test/Parser/implicit-casts.c
+++ b/test/Parser/implicit-casts.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 _Complex double X;
 void test1(int c) {
   X = 5;
diff --git a/test/Parser/ocu_vector_components.c b/test/Parser/ocu_vector_components.c
index a47b9a8..0608417 100644
--- a/test/Parser/ocu_vector_components.c
+++ b/test/Parser/ocu_vector_components.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 typedef __attribute__(( ocu_vector_type(2) )) float float2;
 typedef __attribute__(( ocu_vector_type(3) )) float float3;
diff --git a/test/Parser/parmvardecl_conversion.c b/test/Parser/parmvardecl_conversion.c
index a3e2499..81acc07 100644
--- a/test/Parser/parmvardecl_conversion.c
+++ b/test/Parser/parmvardecl_conversion.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void f (int p[]) { p++; }
 
diff --git a/test/Parser/pointer-arithmetic.c b/test/Parser/pointer-arithmetic.c
index 4403d20..3556c9a 100644
--- a/test/Parser/pointer-arithmetic.c
+++ b/test/Parser/pointer-arithmetic.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int *test1(int *a)         { return a + 1; }
 int *test2(int *a)         { return 1 + a; }
diff --git a/test/Parser/pointer_promotion.c b/test/Parser/pointer_promotion.c
index 8d2e6e7..c648209 100644
--- a/test/Parser/pointer_promotion.c
+++ b/test/Parser/pointer_promotion.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int test() {
   void *vp;
diff --git a/test/Parser/recovery-1.c b/test/Parser/recovery-1.c
index a098aec..b37c88c 100644
--- a/test/Parser/recovery-1.c
+++ b/test/Parser/recovery-1.c
@@ -1,5 +1,5 @@
 // RUN: clang -fsyntax-only -fno-caret-diagnostics -pedantic %s 2>&1 | grep warning | wc -l | grep 1
-// RUN: clang -parse-ast -verify -pedantic %s
+// RUN: clang -fsyntax-only -verify -pedantic %s
 
 char ((((                       /* expected-error {{to match this '('}} */
 *X x ] ))));                    /* expected-error {{expected ')'}} */
diff --git a/test/Parser/typeof.c b/test/Parser/typeof.c
index e1fd6e4..6c4e79c 100644
--- a/test/Parser/typeof.c
+++ b/test/Parser/typeof.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 typedef int TInt;
 
diff --git a/test/Sema/arg-duplicate.c b/test/Sema/arg-duplicate.c
index 324e9fa..b57fd95 100644
--- a/test/Sema/arg-duplicate.c
+++ b/test/Sema/arg-duplicate.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 typedef int x; 
 int f3(y, x, 
diff --git a/test/Sema/arg-invalid.c b/test/Sema/arg-invalid.c
index 29b51f4..03ce00a 100644
--- a/test/Sema/arg-invalid.c
+++ b/test/Sema/arg-invalid.c
@@ -1,4 +1,4 @@
-// RUN: clang %s -parse-ast -verify
+// RUN: clang %s -fsyntax-only -verify
 
 void bar (void *); 
 void f11 (z)       // expected-error {{may not have 'void' type}}
diff --git a/test/Sema/array-constraint.c b/test/Sema/array-constraint.c
index 0533a84..ab2c969 100644
--- a/test/Sema/array-constraint.c
+++ b/test/Sema/array-constraint.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify -pedantic %s
+// RUN: clang -fsyntax-only -verify -pedantic %s
 
 struct s; 
 struct s* t (struct s z[]) {   // expected-error {{array has incomplete element type}}
diff --git a/test/Sema/array-init.c b/test/Sema/array-init.c
index 0986354..510a779 100644
--- a/test/Sema/array-init.c
+++ b/test/Sema/array-init.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify -pedantic %s
+// RUN: clang -fsyntax-only -verify -pedantic %s
 
 extern int foof() = 1; // expected-error{{illegal initializer (only variables can be initialized)}}
 
diff --git a/test/Sema/assign.c b/test/Sema/assign.c
index efeaffb..43f4ba7 100644
--- a/test/Sema/assign.c
+++ b/test/Sema/assign.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void *test1(void) { return 0; }
 
diff --git a/test/Sema/c89.c b/test/Sema/c89.c
index 87ac4fb..7f26e99 100644
--- a/test/Sema/c89.c
+++ b/test/Sema/c89.c
@@ -1,4 +1,4 @@
-/* RUN: clang %s -std=c89 -pedantic -parse-ast -verify
+/* RUN: clang %s -std=c89 -pedantic -fsyntax-only -verify
  */
 void test1() {
   {
diff --git a/test/Sema/cfstring.c b/test/Sema/cfstring.c
index f9fdf3a..d4a8552 100644
--- a/test/Sema/cfstring.c
+++ b/test/Sema/cfstring.c
@@ -1,6 +1,6 @@
 #define CFSTR __builtin___CFStringMakeConstantString
 
-// RUN: clang %s -parse-ast -verify
+// RUN: clang %s -fsyntax-only -verify
 void f() {
   CFSTR("\242"); // expected-warning { CFString literal contains non-ASCII character }
   CFSTR("\0"); // expected-warning { CFString literal contains NUL character }
diff --git a/test/Sema/compare.c b/test/Sema/compare.c
index b31ace6..25d7a91 100644
--- a/test/Sema/compare.c
+++ b/test/Sema/compare.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int test(char *C) { // nothing here should warn.
   return C != ((void*)0);
diff --git a/test/Sema/decl-invalid.c b/test/Sema/decl-invalid.c
index 61ad861..d241adc 100644
--- a/test/Sema/decl-invalid.c
+++ b/test/Sema/decl-invalid.c
@@ -1,3 +1,3 @@
-// RUN: clang %s -parse-ast -verify
+// RUN: clang %s -fsyntax-only -verify
 
 typedef union <anonymous> __mbstate_t;  // expected-error: {{expected identifier or}}
diff --git a/test/Sema/default.c b/test/Sema/default.c
index 92f7278..4efac17 100644
--- a/test/Sema/default.c
+++ b/test/Sema/default.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void f5 (int z) { 
   if (z) 
diff --git a/test/Sema/enum.c b/test/Sema/enum.c
index 1787c4b..79a92c8 100644
--- a/test/Sema/enum.c
+++ b/test/Sema/enum.c
@@ -1,4 +1,4 @@
-// RUN: clang %s -parse-ast -verify -pedantic
+// RUN: clang %s -fsyntax-only -verify -pedantic
 
 enum e {A, 
         B = 42LL << 32,        // expected-warning {{ISO C restricts enumerator values to range of 'int'}}
diff --git a/test/Sema/floating-point-compare.c b/test/Sema/floating-point-compare.c
index 0c84da2..6adc228 100644
--- a/test/Sema/floating-point-compare.c
+++ b/test/Sema/floating-point-compare.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int foo(float x, float y) {
   return x == y; // expected-warning {{comparing floating point with ==}}
diff --git a/test/Sema/for.c b/test/Sema/for.c
index 42932f6..c08f532 100644
--- a/test/Sema/for.c
+++ b/test/Sema/for.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 // Check C99 6.8.5p3
 void b1 (void) { for (void (*f) (void);;); }
diff --git a/test/Sema/format-strings.c b/test/Sema/format-strings.c
index be2706e..83947cf 100644
--- a/test/Sema/format-strings.c
+++ b/test/Sema/format-strings.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 #include <stdio.h>
 #include <stdarg.h>
diff --git a/test/Sema/id_not_builtin.m b/test/Sema/id_not_builtin.m
index 81988fa..519e6ba 100644
--- a/test/Sema/id_not_builtin.m
+++ b/test/Sema/id_not_builtin.m
@@ -1,4 +1,4 @@
-// RUN: clang %s -parse-ast -verify
+// RUN: clang %s -fsyntax-only -verify
 
 id obj; // expected-error{{expected '=', ',', ';', 'asm', or '__attribute__' after declarator}}
 
diff --git a/test/Sema/if-empty-body.c b/test/Sema/if-empty-body.c
index 1dc9e44..1de6ad5 100644
--- a/test/Sema/if-empty-body.c
+++ b/test/Sema/if-empty-body.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void f1(int a) {
     if (a); // expected-warning {{if statement has empty body}}
diff --git a/test/Sema/implicit-def.c b/test/Sema/implicit-def.c
index 942f091..ea42d0c 100644
--- a/test/Sema/implicit-def.c
+++ b/test/Sema/implicit-def.c
@@ -1,5 +1,5 @@
-/* RUN: clang -parse-ast %s -std=c89 &&
- * RUN: not clang -parse-ast %s -std=c99 -pedantic-errors
+/* RUN: clang -fsyntax-only %s -std=c89 &&
+ * RUN: not clang -fsyntax-only %s -std=c99 -pedantic-errors
  */
 
 int A() {
diff --git a/test/Sema/offsetof.c b/test/Sema/offsetof.c
index 14b1440..3decec5 100644
--- a/test/Sema/offsetof.c
+++ b/test/Sema/offsetof.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 #define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
 
diff --git a/test/Sema/return-stack-addr.cpp b/test/Sema/return-stack-addr.cpp
index 2e384a1..5506f2f 100644
--- a/test/Sema/return-stack-addr.cpp
+++ b/test/Sema/return-stack-addr.cpp
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 
 int* ret_local() {
diff --git a/test/Sema/selector-overload.m b/test/Sema/selector-overload.m
index a542e57..7cec1c2 100644
--- a/test/Sema/selector-overload.m
+++ b/test/Sema/selector-overload.m
@@ -1,4 +1,4 @@
-// RUN: clang %s -parse-ast
+// RUN: clang %s -fsyntax-only
 #import <Foundation/NSObject.h>
 
 struct D {
diff --git a/test/Sema/switch-duplicate-defaults.c b/test/Sema/switch-duplicate-defaults.c
index d552c54..9ef683b 100644
--- a/test/Sema/switch-duplicate-defaults.c
+++ b/test/Sema/switch-duplicate-defaults.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void f (int z) { 
   switch(z) {
diff --git a/test/Sema/switch.c b/test/Sema/switch.c
index b66695b..0e39175 100644
--- a/test/Sema/switch.c
+++ b/test/Sema/switch.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 void f (int z) { 
   while (z) { 
diff --git a/test/Sema/typedef-retain.c b/test/Sema/typedef-retain.c
index 121e716..9647c74 100644
--- a/test/Sema/typedef-retain.c
+++ b/test/Sema/typedef-retain.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 typedef float float4 __attribute__((vector_size(16)));
 typedef int int4 __attribute__((vector_size(16)));
diff --git a/test/Sema/unused-expr.c b/test/Sema/unused-expr.c
index d398e74..305c2be 100644
--- a/test/Sema/unused-expr.c
+++ b/test/Sema/unused-expr.c
@@ -1,4 +1,4 @@
-// RUN: clang -parse-ast -verify %s
+// RUN: clang -fsyntax-only -verify %s
 
 int foo(int X, int Y);
 
diff --git a/test/Sema/void_arg.c b/test/Sema/void_arg.c
index b390f59..ae5328a 100644
--- a/test/Sema/void_arg.c
+++ b/test/Sema/void_arg.c
@@ -1,4 +1,4 @@
-/* RUN: clang -parse-ast %s 2>&1 | grep '6 diagnostics'
+/* RUN: clang -fsyntax-only %s 2>&1 | grep '6 diagnostics'
  */
 
 typedef void Void;