diff options
| author | Joey Gouly <joey.gouly@gmail.com> | 2014-01-03 14:16:55 +0000 |
|---|---|---|
| committer | Joey Gouly <joey.gouly@gmail.com> | 2014-01-03 14:16:55 +0000 |
| commit | 96b94e610b84988a851214620b0ecd544584bab7 (patch) | |
| tree | 5783eb39369675e1c516ba864a5302e76e40d581 /clang/lib | |
| parent | 5dff61d322ae0279283fca1f8ec1ee6810a88fd8 (diff) | |
| download | bcm5719-llvm-96b94e610b84988a851214620b0ecd544584bab7.tar.gz bcm5719-llvm-96b94e610b84988a851214620b0ecd544584bab7.zip | |
[OpenCL] Variables in the constant address space must be initialized.
llvm-svn: 198417
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 42e1564fb5c..532aa221770 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -8589,6 +8589,16 @@ void Sema::ActOnUninitializedDecl(Decl *RealDecl, return; } + // OpenCL v1.1 s6.5.3: variables declared in the constant address space must + // be initialized. + if (!Var->isInvalidDecl() && + Var->getType().getAddressSpace() == LangAS::opencl_constant && + !Var->getInit()) { + Diag(Var->getLocation(), diag::err_opencl_constant_no_init); + Var->setInvalidDecl(); + return; + } + switch (Var->isThisDeclarationADefinition()) { case VarDecl::Definition: if (!Var->isStaticDataMember() || !Var->getAnyInitializer()) |

