Michael137 wrote:

> I'm afraid I'm seeing a test regression with this change (confirmed via 
> bisect), on Gentoo amd64:
> 
> ```
> FAIL: Clang :: DebugInfo/CXX/structured-binding.cpp (11221 of 22437)
> ******************** TEST 'Clang :: DebugInfo/CXX/structured-binding.cpp' 
> FAILED ********************
> Exit Code: 1
> 
> Command Output (stderr):
> --
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/clang
>  -cc1 -internal-isystem 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/../../../../lib/clang/22/include
>  -nostdsysteminc -std=c++23 -emit-llvm -debug-info-kind=standalone -triple 
> i686-pc-linux-gnu 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp
>  -o - | /usr/lib/llvm/22/bin/FileCheck 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp
>  --implicit-check-not="call void @llvm.dbg.declare" # RUN: at line 1
> + 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/clang
>  -cc1 -internal-isystem 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/x/y/clang-abi_x86_32.x86/bin/../../../../lib/clang/22/include
>  -nostdsysteminc -std=c++23 -emit-llvm -debug-info-kind=standalone -triple 
> i686-pc-linux-gnu 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp
>  -o -
> + /usr/lib/llvm/22/bin/FileCheck 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp
>  '--implicit-check-not=call void @llvm.dbg.declare'
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp:12:11:
>  error: CHECK: expected string not found in input
> // CHECK: #dbg_declare(ptr %v, ![[VAR_8:[0-9]+]], !DIExpression()
>           ^
> <stdin>:152:44: note: scanning from here
>  #dbg_declare(ptr %k, !133, !DIExpression(), !139)
>                                            ^
> <stdin>:163:2: note: possible intended match here
>  #dbg_declare(ptr %v6, !140, !DIExpression(), !145)
>  ^
> 
> Input file: <stdin>
> Check file: 
> /var/tmp/portage/llvm-core/clang-22.0.0.9999/work/clang/test/DebugInfo/CXX/structured-binding.cpp
> 
> -dump-input=help explains the following input dump.
> 
> Input was:
> <<<<<<
>             .
>             .
>             .
>           147:  store <2 x i32> <i32 1, i32 2>, ptr %vctr, align 8, !dbg !126 
>           148:  #dbg_declare(ptr %5, !127, !DIExpression(DW_OP_deref), !128) 
>           149:  #dbg_declare(ptr %5, !129, !DIExpression(DW_OP_deref, 
> DW_OP_plus_uconst, 4), !130) 
>           150:  store ptr %vctr, ptr %5, align 4, !dbg !131 
>           151:  call void @llvm.memcpy.p0.p0.i32(ptr align 4 %6, ptr align 4 
> @__const._Z1fv..1, i32 12, i1 false), !dbg !132 
>           152:  #dbg_declare(ptr %k, !133, !DIExpression(), !139) 
> check:12'0                                                X~~~~~~~ error: no 
> match found
>           153:  call void @llvm.memcpy.p0.p0.i32(ptr align 4 %agg.tmp, ptr 
> align 4 %6, i32 12, i1 false), !dbg !139 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           154:  %k4 = getelementptr inbounds nuw %"struct.std::triple", ptr 
> %agg.tmp, i32 0, i32 0, !dbg !139 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           155:  %9 = load i32, ptr %k4, align 4, !dbg !139 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           156:  %v = getelementptr inbounds nuw %"struct.std::triple", ptr 
> %agg.tmp, i32 0, i32 1, !dbg !139 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           157:  %10 = load i32, ptr %v, align 4, !dbg !139 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           158:  %w = getelementptr inbounds nuw %"struct.std::triple", ptr 
> %agg.tmp, i32 0, i32 2, !dbg !139 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           159:  %11 = load i32, ptr %w, align 4, !dbg !139 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           160:  %call5 = call noundef i32 @_ZSt3getILj0EEiSt6triple(i32 %9, 
> i32 %10, i32 %11), !dbg !139 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           161:  store i32 %call5, ptr %ref.tmp3, align 4, !dbg !139 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           162:  store ptr %ref.tmp3, ptr %k, align 4, !dbg !139 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           163:  #dbg_declare(ptr %v6, !140, !DIExpression(), !145) 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> check:12'1      ?                                                   possible 
> intended match
>           164:  call void @llvm.memcpy.p0.p0.i32(ptr align 4 %agg.tmp8, ptr 
> align 4 %6, i32 12, i1 false), !dbg !145 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           165:  %k9 = getelementptr inbounds nuw %"struct.std::triple", ptr 
> %agg.tmp8, i32 0, i32 0, !dbg !145 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           166:  %12 = load i32, ptr %k9, align 4, !dbg !145 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           167:  %v10 = getelementptr inbounds nuw %"struct.std::triple", ptr 
> %agg.tmp8, i32 0, i32 1, !dbg !145 
> check:12'0     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>           168:  %13 = load i32, ptr %v10, align 4, !dbg !145 
> check:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>             .
>             .
>             .
> >>>>>>
> 
> --
> 
> ********************
> ```

Thanks for reporting. Hmm looks like on this target the IR variable names just 
differ slightly. We expect `v` but got `v6`. Should be easy enough to adjust

https://github.com/llvm/llvm-project/pull/122265
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to