Change our silencing of C typedef redefinition handling to what we had
before r69391: typedef redefinition is an error by default, but if
*either* the old or new definition are from a system header, we silence
it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70177 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Preprocessor/line-directive.c b/test/Preprocessor/line-directive.c
index 53e9ab7..ed9a6c4 100644
--- a/test/Preprocessor/line-directive.c
+++ b/test/Preprocessor/line-directive.c
@@ -41,12 +41,14 @@
 
 # 192 "glomp.h" // not a system header.
 typedef int x;  // expected-note {{previous definition is here}}
-typedef int x;  // expected-warning {{redefinition of typedef 'x' is invalid in C}}
+typedef int x;  // expected-error {{redefinition of typedef 'x' is invalid in C}}
 
 # 192 "glomp.h" 3 // System header.
 typedef int y;  // ok
 typedef int y;  // ok
 
+typedef int q;  // q is in system header.
+
 #line 42 "blonk.h"  // doesn't change system headerness.
 
 typedef int z;  // ok
@@ -60,8 +62,9 @@
 # 42 "blonk.h"  // DOES change system headerness.
 
 typedef int w;  // expected-note {{previous definition is here}}
-typedef int w;  // expected-warning {{redefinition of typedef 'w' is invalid in C}}
+typedef int w;  // expected-error {{redefinition of typedef 'w' is invalid in C}}
 
+typedef int q;  // original definition in system header, should not diagnose.
 
 // This should not produce an "extra tokens at end of #line directive" warning,
 // because #line is allowed to contain expanded tokens.