-
- Downloads
d: Call the assertp and boundsp variants for assert and array contract failures.
gcc/d/ChangeLog: * d-codegen.cc: Include dmd/module.h. (build_filename_from_loc): New function. (d_assert_call): Rename to... (build_assert_call): ...this. (build_array_bounds_call): Call arrayboundsp variant of the array bounds failure callback. (build_bounds_condition): Rename to... (build_bounds_index_condition): ...this. Update signature. (build_bounds_slice_condition): New function. (checkaction_trap_p): New function. (d_assert_call): Call assertp variant of assert failure callback. * d-tree.h (class IndexExp): Declare. (class SliceExp): Declare. (build_bounds_condition): Remove. (build_assert_call): Declare. (build_bounds_index_condition): Declare. (build_bounds_slice_condition): Declare. (checkaction_trap_p): Declare. (d_assert_call): Remove. * expr.cc (ExprVisitor::visit(IndexExp *)): Call build_bounds_index_condition. (ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition. (ExprVisitor::visit(AssertExp *)): Update setting of libcall. * runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR. (get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR. * runtime.def (ASSERT): Rename to... (ASSERTP): ...this. Update signature. (UNITTEST): Rename to... (UNITTESTP): ...this. Update signature. (ARRAY_BOUNDS): Rename to... (ARRAYBOUNDSP): ...this. Updates signature. * toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call.
Showing
- gcc/d/d-codegen.cc 139 additions, 46 deletionsgcc/d/d-codegen.cc
- gcc/d/d-tree.h 6 additions, 2 deletionsgcc/d/d-tree.h
- gcc/d/expr.cc 8 additions, 50 deletionsgcc/d/expr.cc
- gcc/d/runtime.cc 5 additions, 0 deletionsgcc/d/runtime.cc
- gcc/d/runtime.def 14 additions, 10 deletionsgcc/d/runtime.def
- gcc/d/toir.cc 1 addition, 1 deletiongcc/d/toir.cc
Loading
Please register or sign in to comment