r303642 - Add test coverage for recent behavior change in GNU line marker pre-processing

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Tue May 23 09:09:14 PDT 2017


Author: rnk
Date: Tue May 23 11:09:13 2017
New Revision: 303642

URL: http://llvm.org/viewvc/llvm-project?rev=303642&view=rev
Log:
Add test coverage for recent behavior change in GNU line marker pre-processing

Added:
    cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h
    cfe/trunk/test/Frontend/Inputs/line-directive.h
Removed:
    cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line.h
Modified:
    cfe/trunk/test/Frontend/system-header-line-directive.c
    cfe/trunk/test/Preprocessor/line-directive-output.c

Added: cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h?rev=303642&view=auto
==============================================================================
--- cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h (added)
+++ cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line-directive-in-system.h Tue May 23 11:09:13 2017
@@ -0,0 +1,2 @@
+#line 1 "foo.h"
+foo();

Removed: cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line.h?rev=303641&view=auto
==============================================================================
--- cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line.h (original)
+++ cfe/trunk/test/Frontend/Inputs/SystemHeaderPrefix/line.h (removed)
@@ -1,2 +0,0 @@
-#line 1 "foo.h"
-foo();

Added: cfe/trunk/test/Frontend/Inputs/line-directive.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/Inputs/line-directive.h?rev=303642&view=auto
==============================================================================
--- cfe/trunk/test/Frontend/Inputs/line-directive.h (added)
+++ cfe/trunk/test/Frontend/Inputs/line-directive.h Tue May 23 11:09:13 2017
@@ -0,0 +1,2 @@
+#line 10 "foo.h"
+foo(); // will warn if not treated as a system header

Modified: cfe/trunk/test/Frontend/system-header-line-directive.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/system-header-line-directive.c?rev=303642&r1=303641&r2=303642&view=diff
==============================================================================
--- cfe/trunk/test/Frontend/system-header-line-directive.c (original)
+++ cfe/trunk/test/Frontend/system-header-line-directive.c Tue May 23 11:09:13 2017
@@ -1,20 +1,23 @@
-// RUN: %clang_cc1 -Wall %s -isystem %S/Inputs/SystemHeaderPrefix -verify
-// RUN: %clang_cc1 %s -E -o - -isystem %S/Inputs/SystemHeaderPrefix | FileCheck %s
+// RUN: %clang_cc1 -Wall %s -I %S/Inputs -isystem %S/Inputs/SystemHeaderPrefix -verify
+// RUN: %clang_cc1 %s -E -o - -I %S/Inputs -isystem %S/Inputs/SystemHeaderPrefix | FileCheck %s
 #include <noline.h>
-#include <line.h>
+#include <line-directive-in-system.h>
+
+// expected-warning at line-directive.h:* {{type specifier missing, defaults to 'int'}}
+#include "line-directive.h"
 
 // This tests that "#line" directives in system headers preserve system
 // header-ness just like GNU line markers that don't have filenames.  This was
 // PR30752.
 
-// expected-no-diagnostics
-
 // CHECK: # {{[0-9]+}} "{{.*}}system-header-line-directive.c" 2
 // CHECK: # 1 "{{.*}}noline.h" 1 3
 // CHECK: foo();
 // CHECK: # 4 "{{.*}}system-header-line-directive.c" 2
-// CHECK: # 1 "{{.*}}line.h" 1 3
+// CHECK: # 1 "{{.*}}line-directive-in-system.h" 1 3
 //      The "3" below indicates that "foo.h" is considered a system header.
 // CHECK: # 1 "foo.h" 3
 // CHECK: foo();
 // CHECK: # {{[0-9]+}} "{{.*}}system-header-line-directive.c" 2
+// CHECK: # 1 "{{.*}}line-directive.h" 1
+// CHECK: # 10 "foo.h"{{$}}

Modified: cfe/trunk/test/Preprocessor/line-directive-output.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/line-directive-output.c?rev=303642&r1=303641&r2=303642&view=diff
==============================================================================
--- cfe/trunk/test/Preprocessor/line-directive-output.c (original)
+++ cfe/trunk/test/Preprocessor/line-directive-output.c Tue May 23 11:09:13 2017
@@ -76,3 +76,10 @@ extern int z;
 
 // CHECK: # 50 "a\n.c"
 # 50 "a\012.c"
+
+# 1 "system.h" 3
+# 2
+void sys_foo(void);
+// CHECK: # 1 "system.h" 3
+// CHECK-NEXT: # 2 "system.h" 3
+// CHECK-NEXT: void sys_foo(void);




More information about the cfe-commits mailing list