Author: Anastasia Stulova Date: 2020-08-12T16:17:54+01:00 New Revision: 3c8a4ee0764cafb2ba204c7cb7d8b37e6adf72a8
URL: https://github.com/llvm/llvm-project/commit/3c8a4ee0764cafb2ba204c7cb7d8b37e6adf72a8 DIFF: https://github.com/llvm/llvm-project/commit/3c8a4ee0764cafb2ba204c7cb7d8b37e6adf72a8.diff LOG: [OpenCL] Remove warning for variadic macros in C++ for OpenCL. Patch by Ole Strohm (olestrohm)! Tags: #clang Differential Revision: https://reviews.llvm.org/D85429 Added: Modified: clang/lib/Lex/PPDirectives.cpp clang/test/Preprocessor/macro_variadic.cl Removed: ################################################################################ diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 053ef1d2dd18..e4b901a950ae 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -2397,7 +2397,7 @@ bool Preprocessor::ReadMacroParameterList(MacroInfo *MI, Token &Tok) { diag::ext_variadic_macro); // OpenCL v1.2 s6.9.e: variadic macros are not supported. - if (LangOpts.OpenCL) { + if (LangOpts.OpenCL && !LangOpts.OpenCLCPlusPlus) { Diag(Tok, diag::ext_pp_opencl_variadic_macros); } diff --git a/clang/test/Preprocessor/macro_variadic.cl b/clang/test/Preprocessor/macro_variadic.cl index cc9458da558e..e58896487121 100644 --- a/clang/test/Preprocessor/macro_variadic.cl +++ b/clang/test/Preprocessor/macro_variadic.cl @@ -1,5 +1,7 @@ // RUN: %clang_cc1 -verify %s -cl-std=CL1.2 // RUN: %clang_cc1 -verify %s -pedantic -DPEDANTIC -cl-std=CL1.2 +// RUN: %clang_cc1 -verify %s -cl-std=CLC++ +// RUN: %clang_cc1 -verify %s -pedantic -cl-std=CLC++ #define NO_VAR_FUNC(...) 5 @@ -15,6 +17,11 @@ int printf(__constant const char *st, ...); void foo() { NO_VAR_FUNC(1, 2, 3); - VAR_FUNC(1, 2, 3); //expected-error{{implicit declaration of function 'func' is invalid in OpenCL}} + VAR_FUNC(1, 2, 3); +#if !__OPENCL_CPP_VERSION__ +// expected-error@-2{{implicit declaration of function 'func' is invalid in OpenCL}} +#else +// expected-error@-4{{use of undeclared identifier 'func'}} +#endif VAR_PRINTF("%i", 1); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits