[clang] [CIR] Lower string literals with high-bit bytes (PR #203384)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 11 13:51:17 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 89808 tests passed
* 841 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### Clang
<details>
<summary>Clang.CIR/CodeGen/bind-temporary-lvalue.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++03 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++03 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp --check-prefix=CIR
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp --check-prefix=CIR
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp:18:9: error: CIR: expected string not found in input
# | // CIR: %[[RET:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"]
# |         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir:6:39: note: scanning from here
# |  cir.func no_inline dso_local @_Z1fv() -> (!s32i {llvm.noundef}) attributes {"cir.target-features" = "+cx8,+mmx,+sse,+sse2,+x87", nothrow} {
# |                                       ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir:20:2: note: possible intended match here
# |  %3 = cir.load %0 : !cir.ptr<!s32i>, !s32i loc(#loc17)
# |  ^
# | 
# | Input file: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: !s32i = !cir.int<s, 32> 
# |             2: !rec_S = !cir.struct<"S" {!s32i}> 
# |             3: module @"/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp" attributes {cir.lang = #cir.lang<cxx>, cir.module_asm = [], cir.record_layouts = {S = #cir.record_layout<arg_passing_kind = cannot_pass_in_regs, has_trivial_dtor = false, record_align = 4>}, cir.triple = "x86_64-unknown-linux-gnu", dlti.dl_spec = #dlti.dl_spec<!llvm.ptr<270> = dense<32> : vector<4xi64>, !llvm.ptr<271> = dense<32> : vector<4xi64>, !llvm.ptr<272> = dense<64> : vector<4xi64>, i64 = dense<64> : vector<2xi64>, i128 = dense<128> : vector<2xi64>, f80 = dense<128> : vector<2xi64>, !llvm.ptr = dense<64> : vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" = "little", "dlti.mangling_mode" = "e", "dlti.legal_int_widths" = array<i32: 8, 16, 32, 64>, "dlti.stack_alignment" = 128 : i64>} { 
# |             4:  cir.func private @_Z4getSv() -> !rec_S loc(#loc13) 
# |             5:  cir.func private @_ZN1SD1Ev(!cir.ptr<!rec_S> {llvm.align = 4 : i64, llvm.dereferenceable = 4 : i64, llvm.nonnull, llvm.noundef}) special_member<#cir.cxx_dtor<!rec_S>> loc(#loc14) 
# |             6:  cir.func no_inline dso_local @_Z1fv() -> (!s32i {llvm.noundef}) attributes {"cir.target-features" = "+cx8,+mmx,+sse,+sse2,+x87", nothrow} { 
# | check:18'0                                           X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             7:  %0 = cir.alloca "__retval" align(4) : !cir.ptr<!s32i> loc(#loc6) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  %1 = cir.alloca "temp.lvalue" align(4) : !cir.ptr<!rec_S> loc(#loc16) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  %2 = cir.call @_Z4getSv() : () -> !rec_S loc(#loc7) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            10:  cir.store align(4) %2, %1 : !rec_S, !cir.ptr<!rec_S> loc(#loc7) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11:  cir.cleanup.scope { 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            15:  cir.yield loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            16:  } cleanup normal { 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~
# |            17:  cir.call @_ZN1SD1Ev(%1) : (!cir.ptr<!rec_S> {llvm.align = 4 : i64, llvm.dereferenceable = 4 : i64, llvm.nonnull, llvm.noundef}) -> () loc(#loc14) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            18:  cir.yield loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            19:  } loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~
# |            20:  %3 = cir.load %0 : !cir.ptr<!s32i>, !s32i loc(#loc17) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:18'1      ?                                                      possible intended match
# |            21:  cir.return %3 : !s32i loc(#loc17) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  } loc(#loc15) 
# | check:18'0     ~~~~~~~~~~~~~~~
# |            23: } loc(#loc) 
# | check:18'0     ~~~~~~~~~~~~
# |            24: #loc = loc("/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp":0:0) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25: #loc1 = loc("/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp":13:1) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>Clang.CIR/CodeGen/bind-temporary-lvalue.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++03 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang -cc1 -internal-isystem /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/clang/23/include -nostdsysteminc -std=c++03 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# note: command had no output on stdout or stderr
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp --check-prefix=CIR
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck --input-file=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp --check-prefix=CIR
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp:18:9: error: CIR: expected string not found in input
# | // CIR: %[[RET:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"]
# |         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir:6:39: note: scanning from here
# |  cir.func no_inline dso_local @_Z1fv() -> (!s32i {llvm.noundef}) attributes {"cir.target-features" = "+cx8,+mmx,+sse,+sse2,+x87", nothrow} {
# |                                       ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir:20:2: note: possible intended match here
# |  %3 = cir.load %0 : !cir.ptr<!s32i>, !s32i loc(#loc17)
# |  ^
# | 
# | Input file: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/clang/test/CIR/CodeGen/Output/bind-temporary-lvalue.cpp.tmp.cir
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             1: !s32i = !cir.int<s, 32> 
# |             2: !rec_S = !cir.struct<"S" {!s32i}> 
# |             3: module @"/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp" attributes {cir.lang = #cir.lang<cxx>, cir.module_asm = [], cir.record_layouts = {S = #cir.record_layout<arg_passing_kind = cannot_pass_in_regs, has_trivial_dtor = false, record_align = 4>}, cir.triple = "x86_64-unknown-linux-gnu", dlti.dl_spec = #dlti.dl_spec<!llvm.ptr<270> = dense<32> : vector<4xi64>, !llvm.ptr<271> = dense<32> : vector<4xi64>, !llvm.ptr<272> = dense<64> : vector<4xi64>, i64 = dense<64> : vector<2xi64>, i128 = dense<128> : vector<2xi64>, f80 = dense<128> : vector<2xi64>, !llvm.ptr = dense<64> : vector<4xi64>, i1 = dense<8> : vector<2xi64>, i8 = dense<8> : vector<2xi64>, i16 = dense<16> : vector<2xi64>, i32 = dense<32> : vector<2xi64>, f16 = dense<16> : vector<2xi64>, f64 = dense<64> : vector<2xi64>, f128 = dense<128> : vector<2xi64>, "dlti.endianness" = "little", "dlti.mangling_mode" = "e", "dlti.legal_int_widths" = array<i32: 8, 16, 32, 64>, "dlti.stack_alignment" = 128 : i64>} { 
# |             4:  cir.func private @_Z4getSv() -> !rec_S loc(#loc13) 
# |             5:  cir.func private @_ZN1SD1Ev(!cir.ptr<!rec_S> {llvm.align = 4 : i64, llvm.dereferenceable = 4 : i64, llvm.nonnull, llvm.noundef}) special_member<#cir.cxx_dtor<!rec_S>> loc(#loc14) 
# |             6:  cir.func no_inline dso_local @_Z1fv() -> (!s32i {llvm.noundef}) attributes {"cir.target-features" = "+cx8,+mmx,+sse,+sse2,+x87", nothrow} { 
# | check:18'0                                           X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |             7:  %0 = cir.alloca "__retval" align(4) : !cir.ptr<!s32i> loc(#loc6) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             8:  %1 = cir.alloca "temp.lvalue" align(4) : !cir.ptr<!rec_S> loc(#loc16) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             9:  %2 = cir.call @_Z4getSv() : () -> !rec_S loc(#loc7) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            10:  cir.store align(4) %2, %1 : !rec_S, !cir.ptr<!rec_S> loc(#loc7) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            11:  cir.cleanup.scope { 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            15:  cir.yield loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            16:  } cleanup normal { 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~
# |            17:  cir.call @_ZN1SD1Ev(%1) : (!cir.ptr<!rec_S> {llvm.align = 4 : i64, llvm.dereferenceable = 4 : i64, llvm.nonnull, llvm.noundef}) -> () loc(#loc14) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            18:  cir.yield loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            19:  } loc(#loc9) 
# | check:18'0     ~~~~~~~~~~~~~~
# |            20:  %3 = cir.load %0 : !cir.ptr<!s32i>, !s32i loc(#loc17) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:18'1      ?                                                      possible intended match
# |            21:  cir.return %3 : !s32i loc(#loc17) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  } loc(#loc15) 
# | check:18'0     ~~~~~~~~~~~~~~~
# |            23: } loc(#loc) 
# | check:18'0     ~~~~~~~~~~~~
# |            24: #loc = loc("/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp":0:0) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25: #loc1 = loc("/home/gha/actions-runner/_work/llvm-project/llvm-project/clang/test/CIR/CodeGen/bind-temporary-lvalue.cpp":13:1) 
# | check:18'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/203384


More information about the cfe-commits mailing list