Author: Elvina Yakubova Date: 2020-11-11T17:01:57+03:00 New Revision: 624bced7eec09a6a70f6e04faeddd0adc1553799
URL: https://github.com/llvm/llvm-project/commit/624bced7eec09a6a70f6e04faeddd0adc1553799 DIFF: https://github.com/llvm/llvm-project/commit/624bced7eec09a6a70f6e04faeddd0adc1553799.diff LOG: [OpenCL] Make Clang recognize -cl-std=1.0 as a value argument This patch makes Clang recognize -cl-std=1.0 as a value argument, before only -std=cl1.0 has to be used instead. Fixes https://bugs.llvm.org/show_bug.cgi?id=47981 Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D91237 Added: Modified: clang/include/clang/Driver/Options.td clang/lib/Frontend/CompilerInvocation.cpp clang/test/Driver/autocomplete.c clang/test/Driver/opencl.cl clang/test/Frontend/stdlang.c clang/test/Preprocessor/predefined-macros.c Removed: ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 867b47857295..2e6efef04dbb 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -605,7 +605,7 @@ def cl_no_signed_zeros : Flag<["-"], "cl-no-signed-zeros">, Group<opencl_Group>, HelpText<"OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.">, MarshallingInfoFlag<"LangOpts->CLNoSignedZero">; def cl_std_EQ : Joined<["-"], "cl-std=">, Group<opencl_Group>, Flags<[CC1Option]>, - HelpText<"OpenCL language standard to compile for.">, Values<"cl,CL,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,cl3.0,CL3.0,clc++,CLC++">; + HelpText<"OpenCL language standard to compile for.">, Values<"cl,CL,cl1.0,CL1.0,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,cl3.0,CL3.0,clc++,CLC++">; def cl_denorms_are_zero : Flag<["-"], "cl-denorms-are-zero">, Group<opencl_Group>, HelpText<"OpenCL only. Allow denormals to be flushed to zero.">; def cl_fp32_correctly_rounded_divide_sqrt : Flag<["-"], "cl-fp32-correctly-rounded-divide-sqrt">, Group<opencl_Group>, Flags<[CC1Option]>, diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 590808cf69a0..0a776bfe4518 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2596,6 +2596,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, LangStandard::Kind OpenCLLangStd = llvm::StringSwitch<LangStandard::Kind>(A->getValue()) .Cases("cl", "CL", LangStandard::lang_opencl10) + .Cases("cl1.0", "CL1.0", LangStandard::lang_opencl10) .Cases("cl1.1", "CL1.1", LangStandard::lang_opencl11) .Cases("cl1.2", "CL1.2", LangStandard::lang_opencl12) .Cases("cl2.0", "CL2.0", LangStandard::lang_opencl20) diff --git a/clang/test/Driver/autocomplete.c b/clang/test/Driver/autocomplete.c index c9f66de7cd5d..89f7c6e76125 100644 --- a/clang/test/Driver/autocomplete.c +++ b/clang/test/Driver/autocomplete.c @@ -37,6 +37,8 @@ // CLSTDALL: cl // CLSTDALL-NEXT: CL +// CLSTDALL-NEXT: cl1.0 +// CLSTDALL-NEXT: CL1.0 // CLSTDALL-NEXT: cl1.1 // CLSTDALL-NEXT: CL1.1 // CLSTDALL-NEXT: cl1.2 diff --git a/clang/test/Driver/opencl.cl b/clang/test/Driver/opencl.cl index cc0a9143ab37..44ae12330662 100644 --- a/clang/test/Driver/opencl.cl +++ b/clang/test/Driver/opencl.cl @@ -1,4 +1,5 @@ // RUN: %clang -S -### -cl-std=CL %s 2>&1 | FileCheck --check-prefix=CHECK-CL %s +// RUN: %clang -S -### -cl-std=CL1.0 %s 2>&1 | FileCheck --check-prefix=CHECK-CL10 %s // RUN: %clang -S -### -cl-std=CL1.1 %s 2>&1 | FileCheck --check-prefix=CHECK-CL11 %s // RUN: %clang -S -### -cl-std=CL1.2 %s 2>&1 | FileCheck --check-prefix=CHECK-CL12 %s // RUN: %clang -S -### -cl-std=CL2.0 %s 2>&1 | FileCheck --check-prefix=CHECK-CL20 %s @@ -20,6 +21,7 @@ // RUN: not %clang -cl-std=invalid -DOPENCL %s 2>&1 | FileCheck --check-prefix=CHECK-INVALID %s // CHECK-CL: "-cc1" {{.*}} "-cl-std=CL" +// CHECK-CL10: "-cc1" {{.*}} "-cl-std=CL1.0" // CHECK-CL11: "-cc1" {{.*}} "-cl-std=CL1.1" // CHECK-CL12: "-cc1" {{.*}} "-cl-std=CL1.2" // CHECK-CL20: "-cc1" {{.*}} "-cl-std=CL2.0" diff --git a/clang/test/Frontend/stdlang.c b/clang/test/Frontend/stdlang.c index 35a2116859d5..0cb67deef23b 100644 --- a/clang/test/Frontend/stdlang.c +++ b/clang/test/Frontend/stdlang.c @@ -1,6 +1,7 @@ // RUN: %clang_cc1 -x cuda -std=c++11 -DCUDA %s // RUN: %clang_cc1 -x cl -DOPENCL %s // RUN: %clang_cc1 -x cl -cl-std=cl -DOPENCL %s +// RUN: %clang_cc1 -x cl -cl-std=cl1.0 -DOPENCL %s // RUN: %clang_cc1 -x cl -cl-std=cl1.1 -DOPENCL %s // RUN: %clang_cc1 -x cl -cl-std=cl1.2 -DOPENCL %s // RUN: %clang_cc1 -x cl -cl-std=cl2.0 -DOPENCL %s diff --git a/clang/test/Preprocessor/predefined-macros.c b/clang/test/Preprocessor/predefined-macros.c index 6c80517ec4d4..e406b9a70570 100644 --- a/clang/test/Preprocessor/predefined-macros.c +++ b/clang/test/Preprocessor/predefined-macros.c @@ -123,6 +123,8 @@ // RUN: %clang_cc1 %s -E -dM -o - -x cl \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL10 +// RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL1.0 \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL10 // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL1.1 \ // RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-CL11 // RUN: %clang_cc1 %s -E -dM -o - -x cl -cl-std=CL1.2 \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits