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@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); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits