[Bug rust/21483] Rust expression evaluation can be really expensive

cvs-commit at gcc dot gnu.org sourceware-bugzilla@sourceware.org
Wed May 17 05:09:00 GMT 2017


--- Comment #5 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The gdb-8.0-branch branch has been updated by Tom Tromey


commit 69e9e8a0d5ae31e9869658771a7d399a53ac7833
Author: Tom Tromey <tom@tromey.com>
Date:   Thu May 11 22:22:36 2017 -0600

    Avoid exponential behavior in rust_evaluate_subexp

    The STRUCTOP_STRUCT case in rust_evaluate_subexp would evaluate its
    LHS, and then, if it did not need Rust-specific treatment, it would
    back up and re-evaluate the entire STRUCTOP_STRUCT part of the
    expression using evaluate_subexp_standard.  This yields exponential
    behavior and causes some expressions to evaluate extremely slowly.

    The fix is to simply do the needed work inline.

    This is PR rust/21483.

    2017-05-12  Tom Tromey  <tom@tromey.com>

        PR rust/21483:
        * rust-lang.c (rust_evaluate_subexp) <STRUCTOP_STRUCT>: Don't
        recurse, just call value_struct_elt directly.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the Gdb-prs mailing list