d: Clarify comment for generating static array assignment with literal.
authorIain Buclaw <ibuclaw@gdcproject.org>
Mon, 26 Jul 2021 17:22:48 +0000 (19:22 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Fri, 30 Jul 2021 10:51:36 +0000 (12:51 +0200)
The code block is done as an optimization to elide a call to the runtime
library helpers _d_arrayctor or _d_arrayassign.

gcc/d/ChangeLog:

* expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment
  for generating static array assignment with literal.

gcc/d/expr.cc

index 85269c6..76c1e61 100644 (file)
@@ -1163,9 +1163,9 @@ public:
        bool destructor = needs_dtor (etype);
        bool lvalue = lvalue_p (e->e2);
 
-       /* Even if the elements in rhs are all rvalues and don't have
-          to call postblits, this assignment should call dtors on old
-          assigned elements.  */
+       /* Optimize static array assignment with array literal.  Even if the
+          elements in rhs are all rvalues and don't have to call postblits,
+          this assignment should call dtors on old assigned elements.  */
        if ((!postblit && !destructor)
            || (e->op == TOKconstruct && e->e2->op == TOKarrayliteral)
            || (e->op == TOKconstruct && !lvalue && postblit)