• Tobias Tebbi's avatar
    [torque] generate implicit_cast according to VisitResult types · 46952216
    Tobias Tebbi authored
    In the generated CSA, we called overloaded macros while relying on CSA
    subtyping of TNodes. This doesn't work well with overloads, because
    for C++ any TNode subtyping is treated as an implicit conversion, which
    makes these calls ambiguous for C++.
    As a solution, we insert implicit_cast conversions for arguments
    according to the type predicted by Torque. This way, a CSA overload is always
    called with exactly the signature declared in base.tq.
    This has the additional benefit that it validates the signatures declared in
    base.tq, which could previously be too permissive.
    Also, this triggered a bug in structs, where VisitResult's were
    carrying the wrong type.
    
    Bug: v8:7793
    TBR: danno@chromium.org
    Change-Id: I8ed4bfd04793c8a8805a4a3dd5cf2a85c20ce786
    Reviewed-on: https://chromium-review.googlesource.com/1165237
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54948}
    46952216
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...