diff options
| -rw-r--r-- | clang/lib/CodeGen/CGExprScalar.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index d829facb16d..a5d5bc22af0 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/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<uint64_t, unsigned> Info = CGF.getContext().getTypeInfo(TypeToSize); |

