[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
This revision was automatically updated to reflect the committed changes. Closed by commit rC356450: [OpenCL] Improved testing of default header. (authored by stulova, committed by ). Herald added a project: clang. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59486/new/ https://reviews.llvm.org/D59486 Files: test/Driver/include-default-header.cl test/Headers/opencl-c-header.cl test/SemaOpenCL/builtin.cl test/SemaOpenCL/extensions.cl Index: test/Headers/opencl-c-header.cl === --- test/Headers/opencl-c-header.cl +++ test/Headers/opencl-c-header.cl @@ -1,6 +1,7 @@ // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify | FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1| FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.2| FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1 | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.2 | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=c++ | FileCheck %s --check-prefix=CHECK20 // Test including the default header as a module. // The module should be compiled only once and loaded from cache afterwards. @@ -54,7 +55,7 @@ // CHECK20: _Z3ctzc // CHECK20-NOT: _Z16convert_char_rtec char f(char x) { -#if __OPENCL_C_VERSION__ != CL_VERSION_2_0 +#if !defined(__OPENCL_CPP_VERSION__) && (__OPENCL_C_VERSION__ != CL_VERSION_2_0) return convert_char_rte(x); #else //__OPENCL_C_VERSION__ @@ -67,7 +68,7 @@ // from OpenCL 2.0 onwards. // CHECK20: _Z12write_imagef14ocl_image3d_wo -#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) void test_image3dwo(write_only image3d_t img) { write_imagef(img, (0), (0.0f)); } @@ -75,7 +76,7 @@ // Verify that non-builtin cl_intel_planar_yuv extension is defined from // OpenCL 1.2 onwards. -#if (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) // expected-no-diagnostics #ifndef cl_intel_planar_yuv #error "Missing cl_intel_planar_yuv define" Index: test/SemaOpenCL/builtin.cl === --- test/SemaOpenCL/builtin.cl +++ test/SemaOpenCL/builtin.cl @@ -1,4 +1,5 @@ // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.2 +// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++ // expected-no-diagnostics Index: test/SemaOpenCL/extensions.cl === --- test/SemaOpenCL/extensions.cl +++ test/SemaOpenCL/extensions.cl @@ -28,7 +28,7 @@ // enabled by default with -cl-std=CL2.0). // // RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ #ifdef _OPENCL_H_ // expected-no-diagnostics Index: test/Driver/include-default-header.cl === --- test/Driver/include-default-header.cl +++ test/Driver/include-default-header.cl @@ -1,5 +1,6 @@ -// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s -// CHECK-NOT: finclude-default-header +// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s + +// CHECK-LABEL: finclude-default-header // Make sure we don't pass -finclude-default-header to any commands other than the driver. void test() {} Index: test/Headers/opencl-c-header.cl === --- test/Headers/opencl-c-header.cl +++ test/Headers/opencl-c-header.cl @@ -1,6 +1,7 @@ // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify | FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1| FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include op
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
Anastasia marked an inline comment as done. Anastasia added inline comments. Comment at: test/Headers/opencl-c-header.cl:57-65 char f(char x) { -#if __OPENCL_C_VERSION__ != CL_VERSION_2_0 +#if !defined(__OPENCL_CPP_VERSION__) && (__OPENCL_C_VERSION__ != CL_VERSION_2_0) return convert_char_rte(x); #else //__OPENCL_C_VERSION__ ndrange_t t; return ctz(x); bader wrote: > This test looks strange. > It checks that convert_char_rte is compiled if OpenCL version is not 2.0, but > AFAIK it's not deprecated in OpenCL C 2.0, so I don't know why test is > written in this way (i.e. ifdef-else-endif). > > I think checks should look like this: > ``` > char f(char x) { > // Check check OpenCL C 2.0 and OpenCL C++ functionality > #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ == > CL_VERSION_2_0) > ndrange_t t; > x = ctz(x); > #endif > return convert_char_rte(x); > } > ``` > > Probably it's better to fix separately. Ok, I think the idea was just to have 2 unique outputs to be checked that we can detect CL2.0 or earlier. But I guess we can do the same with the structure you are suggesting too. I don't mind changing it. I have to say the header testing is so ad-hoc at the moment and I would like to improve it but because it's so costly we probably need this to be done conditionally. I was thinking to activate it with an extra flag in cmake. Anyway, this is something for the future. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59486/new/ https://reviews.llvm.org/D59486 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
bader accepted this revision. bader added a comment. This revision is now accepted and ready to land. OpenCL C++ part looks good. Thanks! Comment at: test/Headers/opencl-c-header.cl:57-65 char f(char x) { -#if __OPENCL_C_VERSION__ != CL_VERSION_2_0 +#if !defined(__OPENCL_CPP_VERSION__) && (__OPENCL_C_VERSION__ != CL_VERSION_2_0) return convert_char_rte(x); #else //__OPENCL_C_VERSION__ ndrange_t t; return ctz(x); This test looks strange. It checks that convert_char_rte is compiled if OpenCL version is not 2.0, but AFAIK it's not deprecated in OpenCL C 2.0, so I don't know why test is written in this way (i.e. ifdef-else-endif). I think checks should look like this: ``` char f(char x) { // Check check OpenCL C 2.0 and OpenCL C++ functionality #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ == CL_VERSION_2_0) ndrange_t t; x = ctz(x); #endif return convert_char_rte(x); } ``` Probably it's better to fix separately. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59486/new/ https://reviews.llvm.org/D59486 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
Anastasia marked an inline comment as done. Anastasia added inline comments. Comment at: test/Driver/include-default-header.cl:2 +// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s +// RUN: %clang -save-temps -x cl -Xclang -cl-std=c++ -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s + bader wrote: > According to my understanding test/Driver tests covers only driver component, > i.e. all other components like Parser/Sema are not covered by these tests. > AFAIK "-###" prints the commands generated by driver, but do not run them. > Do we want to test parsing/Sema for OpenCL C++ mode or do you think that > testing OpenCL C mode is enough? I think testing Clang actions in C++ mode with default include is pointless since lang mode doesn't affect anything there. But testing in Sema is indeed what we should do. I have updated the patch now. However, I am still fixing this test because it wasn't testing anything before. Thanks for spotting this! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59486/new/ https://reviews.llvm.org/D59486 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
Anastasia updated this revision to Diff 191100. Anastasia added a comment. Moved testing of default header in C++ mode to test/Headers/opencl-c-header.cl CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59486/new/ https://reviews.llvm.org/D59486 Files: test/Driver/include-default-header.cl test/Headers/opencl-c-header.cl test/SemaOpenCL/builtin.cl test/SemaOpenCL/extensions.cl Index: test/SemaOpenCL/extensions.cl === --- test/SemaOpenCL/extensions.cl +++ test/SemaOpenCL/extensions.cl @@ -28,7 +28,7 @@ // enabled by default with -cl-std=CL2.0). // // RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ #ifdef _OPENCL_H_ // expected-no-diagnostics Index: test/SemaOpenCL/builtin.cl === --- test/SemaOpenCL/builtin.cl +++ test/SemaOpenCL/builtin.cl @@ -1,4 +1,5 @@ // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.2 +// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++ // expected-no-diagnostics Index: test/Headers/opencl-c-header.cl === --- test/Headers/opencl-c-header.cl +++ test/Headers/opencl-c-header.cl @@ -1,6 +1,7 @@ // RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify | FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1| FileCheck %s -// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.2| FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.1 | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=CL1.2 | FileCheck %s +// RUN: %clang_cc1 -O0 -triple spir-unknown-unknown -internal-isystem ../../lib/Headers -include opencl-c.h -emit-llvm -o - %s -verify -cl-std=c++ | FileCheck %s --check-prefix=CHECK20 // Test including the default header as a module. // The module should be compiled only once and loaded from cache afterwards. @@ -54,7 +55,7 @@ // CHECK20: _Z3ctzc // CHECK20-NOT: _Z16convert_char_rtec char f(char x) { -#if __OPENCL_C_VERSION__ != CL_VERSION_2_0 +#if !defined(__OPENCL_CPP_VERSION__) && (__OPENCL_C_VERSION__ != CL_VERSION_2_0) return convert_char_rte(x); #else //__OPENCL_C_VERSION__ @@ -67,7 +68,7 @@ // from OpenCL 2.0 onwards. // CHECK20: _Z12write_imagef14ocl_image3d_wo -#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0 +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) void test_image3dwo(write_only image3d_t img) { write_imagef(img, (0), (0.0f)); } @@ -75,7 +76,7 @@ // Verify that non-builtin cl_intel_planar_yuv extension is defined from // OpenCL 1.2 onwards. -#if (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) // expected-no-diagnostics #ifndef cl_intel_planar_yuv #error "Missing cl_intel_planar_yuv define" Index: test/Driver/include-default-header.cl === --- test/Driver/include-default-header.cl +++ test/Driver/include-default-header.cl @@ -1,5 +1,6 @@ -// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s -// CHECK-NOT: finclude-default-header +// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s + +// CHECK-LABEL: finclude-default-header // Make sure we don't pass -finclude-default-header to any commands other than the driver. void test() {} Index: test/SemaOpenCL/extensions.cl === --- test/SemaOpenCL/extensions.cl +++ test/SemaOpenCL/extensions.cl @@ -28,7 +28,7 @@ // enabled by default with -cl-std=CL2.0). // // RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ #ifdef _OPENCL_H_ // expected-no-diagnostics Index: test/SemaOpenCL/builtin.cl ==
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
bader added a comment. I see seven OpenCL C tests using -finclude-default-header option and AFAIK, only test/Driver/include-default-header.cl doesn't parse it. Could you also update OpenCL C tests? I think clang/test/Headers/opencl-c-header.cl and test/Driver/include-default-header.cl fully cover this feature. All other tests seems to use this option to simplify the test, but with additional cost on parsing this header. grep -r include-default-header clang/test/ clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir-unknown-unknown -emit-llvm -o - -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir-unknown-unknown -emit-llvm -o - -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir-unknown-unknown -O0 -emit-llvm -o - -cl-std=CL2.0 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK20 --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir-unknown-unknown -O0 -emit-llvm -o - -cl-std=CL2.0 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK20 --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir64-unknown-unknown -emit-llvm -o - -cl-std=CL1.2 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple amdgcn--amdhsa -O0 -emit-llvm -o - -cl-std=CL2.0 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK20 --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple spir64-unknown-unknown -emit-llvm -o - -cl-std=CL1.2 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MOD %s clang/test/Headers/opencl-c-header.cl:// RUN: %clang_cc1 -triple amdgcn--amdhsa -O0 -emit-llvm -o - -cl-std=CL2.0 -finclude-default-header -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -ftime-report %s 2>&1 | FileCheck --check-prefix=CHECK20 --check-prefix=CHECK-MOD %s clang/test/Driver/include-default-header.cl:// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s clang/test/Driver/include-default-header.cl:// CHECK-NOT: finclude-default-header clang/test/Driver/include-default-header.cl:// Make sure we don't pass -finclude-default-header to any commands other than the driver. clang/test/SemaOpenCL/as_type.cl:// RUN: %clang_cc1 %s -emit-llvm -triple spir-unknown-unknown -finclude-default-header -o - -verify -fsyntax-only clang/test/SemaOpenCL/printf-format-string-warnings.cl:// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header clang/test/SemaOpenCL/extensions.cl:// Test with -finclude-default-header, which includes opencl-c.h. opencl-c.h clang/test/SemaOpenCL/extensions.cl:// RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header clang/test/SemaOpenCL/extensions.cl:// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header clang/test/CodeGenOpenCL/builtins.cl:// RUN: %clang_cc1 %s -finclude-default-header -cl-std=CL2.0 -O0 -emit-llvm -o - -triple "spir-unknown-unknown" | FileCheck %s clang/test/CodeGenOpenCL/size_t.cl:// RUN: %clang_cc1 %s -cl-std=CL2.0 -finclude-default-header -emit-llvm -O0 -triple spir-unknown-unknown -o - | FileCheck --check-prefix=SZ32 %s clang/test/CodeGenOpenCL/size_t.cl:// RUN: %clang_cc1 %s -cl-std=CL2.0 -finclude-default-header -emit-llvm -O0 -triple spir64-unknown-unknown -o - | FileCheck --check-prefix=SZ64 --check-prefix=SZ64ONLY %s clang/test/CodeGenOpenCL/size_t.cl:// RUN: %clang_cc1 %s -cl-std=CL2.0 -finclude-default-header -emit-llvm -O0 -triple amdgcn -o - | FileCheck --check-prefix=SZ64 --check-prefix=AMDGCN %s clang/test/CodeGenOpenCL/size_t.cl:// RUN: %clang_cc1 %s -cl-std=CL2.0 -finclude-default-header -emit-llvm -O0 -triple amdgcn---opencl -o - | FileCheck --check-prefix=SZ64 --check-prefix=AMDGCN %s Comment at: test/Driver/include-default-header.cl:2 +// RUN: %clang -save-temps -x cl -Xclang -cl-std=
[PATCH] D59486: [OpenCL] Improve testing of default header in C++ mode
Anastasia created this revision. Anastasia added a reviewer: bader. Herald added subscribers: ebevhan, yaxunl. Moved testing of the default header into the Driver test and also added a test line for C++ mode in printf test. Follow up from https://reviews.llvm.org/D59219 https://reviews.llvm.org/D59486 Files: test/Driver/include-default-header.cl test/SemaOpenCL/builtin.cl test/SemaOpenCL/extensions.cl Index: test/SemaOpenCL/extensions.cl === --- test/SemaOpenCL/extensions.cl +++ test/SemaOpenCL/extensions.cl @@ -28,7 +28,7 @@ // enabled by default with -cl-std=CL2.0). // // RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ #ifdef _OPENCL_H_ // expected-no-diagnostics Index: test/SemaOpenCL/builtin.cl === --- test/SemaOpenCL/builtin.cl +++ test/SemaOpenCL/builtin.cl @@ -1,4 +1,5 @@ // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.2 +// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++ // expected-no-diagnostics Index: test/Driver/include-default-header.cl === --- test/Driver/include-default-header.cl +++ test/Driver/include-default-header.cl @@ -1,5 +1,7 @@ -// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s -// CHECK-NOT: finclude-default-header +// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s +// RUN: %clang -save-temps -x cl -Xclang -cl-std=c++ -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s + +// CHECK-LABEL: finclude-default-header // Make sure we don't pass -finclude-default-header to any commands other than the driver. void test() {} Index: test/SemaOpenCL/extensions.cl === --- test/SemaOpenCL/extensions.cl +++ test/SemaOpenCL/extensions.cl @@ -28,7 +28,7 @@ // enabled by default with -cl-std=CL2.0). // // RUN: %clang_cc1 %s -triple amdgcn-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=CL2.0 -finclude-default-header -// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ -finclude-default-header +// RUN: %clang_cc1 %s -triple spir-unknown-unknown -verify -pedantic -fsyntax-only -cl-std=c++ #ifdef _OPENCL_H_ // expected-no-diagnostics Index: test/SemaOpenCL/builtin.cl === --- test/SemaOpenCL/builtin.cl +++ test/SemaOpenCL/builtin.cl @@ -1,4 +1,5 @@ // RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL1.2 +// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++ // expected-no-diagnostics Index: test/Driver/include-default-header.cl === --- test/Driver/include-default-header.cl +++ test/Driver/include-default-header.cl @@ -1,5 +1,7 @@ -// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s -// CHECK-NOT: finclude-default-header +// RUN: %clang -save-temps -x cl -Xclang -cl-std=CL2.0 -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s +// RUN: %clang -save-temps -x cl -Xclang -cl-std=c++ -Xclang -finclude-default-header -emit-llvm -S -### %s 2>&1 | FileCheck %s + +// CHECK-LABEL: finclude-default-header // Make sure we don't pass -finclude-default-header to any commands other than the driver. void test() {} ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits