================
@@ -365,10 +365,15 @@ mlir::Attribute
ConstantEmitter::tryEmitPrivateForVarInit(const VarDecl &d) {
if (!d.hasLocalStorage()) {
QualType ty = cgm.getASTContext().getBaseElementType(d.getType());
if (ty->isRecordType())
- if (d.getInit() && isa<CXXConstructExpr>(d.getInit())) {
- cgm.errorNYI(d.getInit()->getBeginLoc(),
- "tryEmitPrivateForVarInit CXXConstructExpr");
- return {};
+ if (const CXXConstructExpr *e =
+ dyn_cast_or_null<CXXConstructExpr>(d.getInit())) {
+ const CXXConstructorDecl *cd = e->getConstructor();
----------------
bcardosolopes wrote:
We have been careful not to elide things too early since it might hurt static
analysis - this is a big pain point and request from the static analysis
community (as clang really early get rid of these). The idea is to represent
them in a way that during LoweringPrepare we can either elide them out or apply
specific lowering heuristics (e.g. when deciding the best way to initialize
large set of constant datas).
https://github.com/llvm/llvm-project/pull/138368
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits