diff options
| author | Xiuli Pan <xiulipan@outlook.com> | 2016-06-07 03:41:07 +0000 |
|---|---|---|
| committer | Xiuli Pan <xiulipan@outlook.com> | 2016-06-07 03:41:07 +0000 |
| commit | a219552ca838b44d44c9b165fc4def5503f69bb6 (patch) | |
| tree | fe9c9cd20d90ccfea709416c6f5a08a39b8eb516 /clang | |
| parent | 532dcbc2c5d5b0a6ec757699e0b23d6a7417e12e (diff) | |
| download | bcm5719-llvm-a219552ca838b44d44c9b165fc4def5503f69bb6.tar.gz bcm5719-llvm-a219552ca838b44d44c9b165fc4def5503f69bb6.zip | |
Revert "[OPENCL] Fix wrongly vla error for OpenCL array."
Test case break on system-z.
This reverts commit 9a7212e1e87f1396952d74f8c62314a775ccbb1c.
llvm-svn: 271975
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaType.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CodeGenOpenCL/vla.cl | 18 |
3 files changed, 2 insertions, 24 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index e14330cf60e..8c24b0333e1 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -2745,10 +2745,7 @@ static CompleteObject findCompleteObject(EvalInfo &Info, const Expr *E, } else if (VD->isConstexpr()) { // OK, we can read this variable. } else if (BaseType->isIntegralOrEnumerationType()) { - // In OpenCL if a variable is in constant address space it is a const value. - if (!(BaseType.isConstQualified() || - (Info.getLangOpts().OpenCL && - BaseType.getAddressSpace() == LangAS::opencl_constant))) { + if (!BaseType.isConstQualified()) { if (Info.getLangOpts().CPlusPlus) { Info.Diag(E, diag::note_constexpr_ltor_non_const_int, 1) << VD; Info.Note(VD->getLocation(), diag::note_declared_at); diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index ddcdef84310..9786f7fb4f8 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -2063,8 +2063,7 @@ static bool isArraySizeVLA(Sema &S, Expr *ArraySize, llvm::APSInt &SizeVal) { } Diagnoser; return S.VerifyIntegerConstantExpression(ArraySize, &SizeVal, Diagnoser, - S.LangOpts.GNUMode || - S.LangOpts.OpenCL).isInvalid(); + S.LangOpts.GNUMode).isInvalid(); } /// \brief Build an array type. diff --git a/clang/test/CodeGenOpenCL/vla.cl b/clang/test/CodeGenOpenCL/vla.cl deleted file mode 100644 index 56533aba5dd..00000000000 --- a/clang/test/CodeGenOpenCL/vla.cl +++ /dev/null @@ -1,18 +0,0 @@ -// RUN: %clang_cc1 -emit-llvm -O0 -cl-std=CL2.0 -o - %s | FileCheck %s - -constant int sz0 = 5; -// CHECK: @sz0 = constant i32 5, align 4 -const global int sz1 = 16; -// CHECK: @sz1 = constant i32 16, align 4 -const constant int sz2 = 8; -// CHECK: @sz2 = constant i32 8, align 4 -// CHECK: @testvla.vla2 = internal global [8 x i16] undef, align 16 - -kernel void testvla() -{ - int vla0[sz0]; -// CHECK: %vla0 = alloca [5 x i32], align 16 - char vla1[sz1]; -// CHECK: %vla1 = alloca [16 x i8], align 16 - local short vla2[sz2]; -} |

