• Daniel Clifford's avatar
    [Torque]: add assert(), unreachable and debug statements · 9cd8995f
    Daniel Clifford authored
    - In debug builds, 'assert(<expr>)' evaluates and aborts execution
      if the provided Torque expression is false at runtime.
      assert(<expr>) supports the same set of expressions protocols
      as Toruqe's if statement, i.e. both bool values and BranchIf-
      style tests. Upon failure, the assertion prints the Torque
      source code of the failed expression, not the generated CSA
      code.
    - 'unreachable' calls CSA's Unreachable() and signals to Torque
      that code execution cannot continue (i.e. its statement
      returns the 'never' type). In debug builds, the line number
      and position of the statement are printed before breaking.
    - 'debug' calls CSA's DebugBreak(). In debug builds, the line
      number and position of the 'debug' are printed before breaking.
    
    Change-Id: I4efd052536bb402c097a0d5f7be56e154b5b3676
    Reviewed-on: https://chromium-review.googlesource.com/1042570
    Commit-Queue: Daniel Clifford <danno@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52984}
    9cd8995f
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides 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...
.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...