================
@@ -738,7 +738,7 @@ bool ConstStructBuilder::Build(const InitListExpr *ILE, 
bool AllowOverwrite) {
     // Zero-sized fields are not emitted, but their initializers may still
     // prevent emission of this struct as a constant.
     if (isEmptyFieldForLayout(CGM.getContext(), Field)) {
-      if (Init->HasSideEffects(CGM.getContext()))
+      if (Init && Init->HasSideEffects(CGM.getContext()))
----------------
efriedma-quic wrote:

Looking at the comments ("Only do this if we're initializing a class type, to 
avoid filling in the initializer list where possible"), I guess the member init 
is being intentionally omitted to try to reduce the size of the AST... but for 
C++11 classes, we need to do overload resolution etc., so we can't skip it.

https://github.com/llvm/llvm-project/pull/109271
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to