Summary: Functions with static arrays as arguments are not
           Product: D
           Version: 2.041
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: P2
         Component: DMD

--- Comment #0 from Clemens <> 2010-02-11 07:34:57 PST ---
Was just browsing through some front end code and found this bit of code in
canInline() in inline.c:

    /* If any parameters are Tsarray's (which are passed by reference)
     * or out parameters (also passed by reference), don't do inlining.
    if (parameters)
    for (int i = 0; i < parameters->dim; i++)
        VarDeclaration *v = (VarDeclaration *)parameters->data[i];
        if (v->isOut() || v->isRef() || v->type->toBasetype()->ty == Tsarray)
        goto Lno;

The comment, as far as I can see, is obsolete since static arrays are now value
types? Perhaps this restriction can be lifted now? Especially for functions on
small vectors, I would expect inlining to be very beneficial.

Just putting this here to have it not overlooked.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to