Author: Nick Desaulniers Date: 2023-07-25T14:12:50-07:00 New Revision: 15a484bf6990c5c3b759f5bbf99055612c20b924
URL: https://github.com/llvm/llvm-project/commit/15a484bf6990c5c3b759f5bbf99055612c20b924 DIFF: https://github.com/llvm/llvm-project/commit/15a484bf6990c5c3b759f5bbf99055612c20b924.diff LOG: [clang][ConstExprEmitter] handle IntegerLiterals Improves the ability of ConstExprEmitter to evaluate constants. Found by adding asserts to ConstantEmitter::tryEmitPrivate to find cases where ConstExprEmitter::Visit() fails to resolve (obvious) constants. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D156154 Added: Modified: clang/lib/CodeGen/CGExprConstant.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 353ee56839f37e..836561a0fb7325 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -1215,6 +1215,10 @@ class ConstExprEmitter : return Visit(E->getSubExpr(), T); } + llvm::Constant *VisitIntegerLiteral(IntegerLiteral *I, QualType T) { + return llvm::ConstantInt::get(CGM.getLLVMContext(), I->getValue()); + } + llvm::Constant *EmitArrayInitialization(InitListExpr *ILE, QualType T) { auto *CAT = CGM.getContext().getAsConstantArrayType(ILE->getType()); assert(CAT && "can't emit array init for non-constant-bound array"); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits