about summary refs log tree commit diff
path: root/tests/mir-opt/basic_assignment.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-10-19 07:50:09 +0000
committerbors <bors@rust-lang.org>2023-10-19 07:50:09 +0000
commita01382dbea73c1442de1cf180333c273f82f710b (patch)
treeefc54aca5b89361138dfe487b6f59b4a43b8370f /tests/mir-opt/basic_assignment.rs
parent36b61e5aa593cc60cc92fc548b0d351e414aee2a (diff)
parent316c9a9f719f1ca7458c6d42655d524376abcfc7 (diff)
downloadrust-a01382dbea73c1442de1cf180333c273f82f710b.tar.gz
rust-a01382dbea73c1442de1cf180333c273f82f710b.zip
Auto merge of #116037 - wesleywiser:stack_protector_test_windows, r=cuviper
Add `-Zstack-protector` test for Windows targets

Add variants of the `stack-protector-heuristics-effect.rs` test for 32-bit and 64-bit MSVC Windows and update the original test to run on GNU Windows targets.

I added two tests instead of trying to modify the original because:
  - MSVC uses a different function name (`__security_check_cookie` to perform the test rather than doing the test inline and calling `__stack_chk_fail`).
  - LLVM's stack protection pass doesn't currently support generating checks for [frames with funclet based EH personality](https://github.com/llvm/llvm-project/blob/37fd3c96b917096d8a550038f6e61cdf0fc4174f/llvm/lib/CodeGen/StackProtector.cpp#L103C1-L109C4).
  - 32-bit Windows uses classic EH while 64-bit Windows uses table-based EH which results in slightly different codegen.

[CI run with test passing on {i686,x86_64}-{msvc,mingw}](https://github.com/rust-lang/rust/actions/runs/6275450644/job/17042958375?pr=116037)
Diffstat (limited to 'tests/mir-opt/basic_assignment.rs')
0 files changed, 0 insertions, 0 deletions