зеркало из https://github.com/microsoft/clang-1.git
globals can't be vla's
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44512 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
9615bf855a
Коммит
9a64cf762e
|
@ -372,8 +372,7 @@ static llvm::Constant *GenerateConstantExpr(const Expr *Expression,
|
|||
// If this is due to array->pointer conversion, emit the array expression as
|
||||
// an l-value.
|
||||
if (ICExpr->getSubExpr()->getType()->isArrayType()) {
|
||||
// FIXME: For now we assume that all source arrays map to LLVM arrays.
|
||||
// This will not true when we add support for VLAs.
|
||||
// Note that VLAs can't exist for global variables.
|
||||
// The only thing that can have array type like this is a
|
||||
// DeclRefExpr(FileVarDecl)?
|
||||
const DeclRefExpr *DRE = cast<DeclRefExpr>(ICExpr->getSubExpr());
|
||||
|
@ -381,8 +380,7 @@ static llvm::Constant *GenerateConstantExpr(const Expr *Expression,
|
|||
llvm::Constant *C = CGM.GetAddrOfFileVarDecl(FVD, false);
|
||||
assert(isa<llvm::PointerType>(C->getType()) &&
|
||||
isa<llvm::ArrayType>(cast<llvm::PointerType>(C->getType())
|
||||
->getElementType()) &&
|
||||
"Doesn't support VLAs yet!");
|
||||
->getElementType()));
|
||||
llvm::Constant *Idx0 = llvm::ConstantInt::get(llvm::Type::Int32Ty, 0);
|
||||
|
||||
llvm::Constant *Ops[] = {Idx0, Idx0};
|
||||
|
|
Загрузка…
Ссылка в новой задаче