From: Anders Carlsson Date: Sun, 21 Dec 2008 03:48:05 +0000 (+0000) Subject: Implement alignof for vla types. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4a1424fd702299fbc354899b8c65bdf8491d8fe9;p=clang Implement alignof for vla types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61305 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp index d829facb16..a5d5bc22af 100644 --- a/lib/CodeGen/CGExprScalar.cpp +++ b/lib/CodeGen/CGExprScalar.cpp @@ -670,8 +670,13 @@ ScalarExprEmitter::VisitSizeOfAlignOfExpr(const SizeOfAlignOfExpr *E) { } return CGF.GetVLASize(VAT); } - // FIXME: This should be an UNSUPPORTED error. - assert(0 && "alignof VLAs not implemented yet"); + + // alignof + QualType BaseType = CGF.getContext().getBaseElementType(VAT); + uint64_t Align = CGF.getContext().getTypeAlign(BaseType); + + Align /= 8; // Return alignment in bytes, not bits. + return llvm::ConstantInt::get(llvm::APInt(ResultWidth, Align)); } std::pair Info = CGF.getContext().getTypeInfo(TypeToSize);