diff options
| author | Koakuma <koachan@protonmail.com> | 2024-07-08 19:19:54 +0700 |
|---|---|---|
| committer | Koakuma <koachan@protonmail.com> | 2024-07-08 19:19:54 +0700 |
| commit | 5c4fdc2fd5898ebd9e89999a4f4b8aa289ca637f (patch) | |
| tree | f3b92a07f3dfc6e70f36d1000605f36a3c15af46 /clang/test/CodeGenCXX/catch-undef-behavior.cpp | |
| parent | dbda8e2f2cd8764e0badd983915d62a2c3377f4d (diff) | |
| parent | e9b8cd0c806db00f0981fb36717077c941426302 (diff) | |
[𝘀𝗽𝗿] changes introduced through rebaseusers/koachan/spr/main.sparcias-enable-parseforallfeatures-in-matchoperandparserimpl
Created using spr 1.3.5
[skip ci]
Diffstat (limited to 'clang/test/CodeGenCXX/catch-undef-behavior.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/catch-undef-behavior.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/clang/test/CodeGenCXX/catch-undef-behavior.cpp b/clang/test/CodeGenCXX/catch-undef-behavior.cpp index 6fd7d16f8636..0c14c97dacca 100644 --- a/clang/test/CodeGenCXX/catch-undef-behavior.cpp +++ b/clang/test/CodeGenCXX/catch-undef-behavior.cpp @@ -56,8 +56,8 @@ void member_access(S *p) { // (1b) Check that 'p' actually points to an 'S'. - // CHECK: %[[VPTR:.*]] = load i64, ptr - // + // CHECK: %[[VTABLE:.*]] = load ptr, ptr %0 + // CHECK: %[[VPTR:.*]] = ptrtoint ptr %[[VTABLE]] to i64 // hash_16_bytes: // // If this number changes, it indicates that either the mangled name of ::S @@ -67,15 +67,10 @@ void member_access(S *p) { // The two hash values are for 64- and 32-bit Clang binaries, respectively. // FIXME: We should produce a 64-bit value either way. // - // CHECK-NEXT: xor i64 {{-4030275160588942838|1107558922}}, %[[VPTR]] - // CHECK-NEXT: mul i64 {{.*}}, -7070675565921424023 - // CHECK-NEXT: lshr i64 {{.*}}, 47 - // CHECK-NEXT: xor i64 - // CHECK-NEXT: xor i64 %[[VPTR]] - // CHECK-NEXT: mul i64 {{.*}}, -7070675565921424023 - // CHECK-NEXT: lshr i64 {{.*}}, 47 - // CHECK-NEXT: xor i64 - // CHECK-NEXT: %[[HASH:.*]] = mul i64 {{.*}}, -7070675565921424023 + // CHECK-NEXT: mul i64 %[[VPTR]], -4658895280553007687, !nosanitize + // CHECK-NEXT: lshr i64 {{.*}}, 31 + // CHECK-NEXT: xor i64 %[[#]], %[[#]] + // CHECK-NEXT: %[[HASH:.*]] = xor i64 4589795628539611399, %[[#]], !nosanitize // // Check the hash against the table: // @@ -115,8 +110,9 @@ void member_access(S *p) { // (3b) Check that 'p' actually points to an 'S' - // CHECK: load i64, ptr - // CHECK-NEXT: xor i64 {{-4030275160588942838|1107558922}}, + // CHECK: [[VTABLE2:%.*]] = load ptr, ptr + // CHECK: ptrtoint ptr [[VTABLE2]] to i64 + // CHECK-NEXT: mul i64 %[[#]], -4658895280553007687, !nosanitize // [...] // CHECK: getelementptr inbounds [128 x i64], ptr @__ubsan_vptr_type_cache, i32 0, i64 % // CHECK: br i1 |
