Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add discriminators to DILocations when multiple functions are inlined into a single point. #132613

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

khuey
Copy link
Contributor

@khuey khuey commented Nov 4, 2024

LLVM does not expect to ever see multiple dbg_declares for the same variable at the same location with different values. proc-macros make it possible for arbitrary code, including multiple calls that get inlined, to happen at any given location in the source code. Add discriminators when that happens so these locations are different to LLVM.

This may interfere with the AddDiscriminators pass in LLVM, which is added by the unstable flag -Zdebug-info-for-profiling.

Fixes #131944

try-job: x86_64-msvc
try-job: i686-msvc
try-job: x86_64-mingw
try-job: aarch64-apple
try-job: test-various
try-job: dist-various-1
try-job: armhf-gnu

… into a single point.

LLVM does not expect to ever see multiple dbg_declares for the same variable at the same
location with different values. proc-macros make it possible for arbitrary code,
including multiple calls that get inlined, to happen at any given location in the source
code. Add discriminators when that happens so these locations are different to LLVM.

This may interfere with the AddDiscriminators pass in LLVM, which is added by the
unstable flag -Zdebug-info-for-profiling.

Fixes rust-lang#131944
@rustbot
Copy link
Collaborator

rustbot commented Nov 4, 2024

r? @chenyukang

rustbot has assigned @chenyukang.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 4, 2024
@rust-log-analyzer

This comment has been minimized.

@workingjubilee
Copy link
Member

@bors try

@bors
Copy link
Contributor

bors commented Nov 5, 2024

⌛ Trying commit c4b99a1 with merge 6bc6e20...

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 5, 2024
Add discriminators to DILocations when multiple functions are inlined into a single point.

LLVM does not expect to ever see multiple dbg_declares for the same variable at the same location with different values. proc-macros make it possible for arbitrary code, including multiple calls that get inlined, to happen at any given location in the source code. Add discriminators when that happens so these locations are different to LLVM.

This may interfere with the AddDiscriminators pass in LLVM, which is added by the unstable flag -Zdebug-info-for-profiling.

Fixes rust-lang#131944
@bors
Copy link
Contributor

bors commented Nov 5, 2024

☀️ Try build successful - checks-actions
Build commit: 6bc6e20 (6bc6e203f22db68ac5d1affcbc364737fad0f0d6)

@jieyouxu
Copy link
Member

jieyouxu commented Nov 5, 2024

@bors try

@bors
Copy link
Contributor

bors commented Nov 5, 2024

⌛ Trying commit c4b99a1 with merge 9517283...

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 5, 2024
Add discriminators to DILocations when multiple functions are inlined into a single point.

LLVM does not expect to ever see multiple dbg_declares for the same variable at the same location with different values. proc-macros make it possible for arbitrary code, including multiple calls that get inlined, to happen at any given location in the source code. Add discriminators when that happens so these locations are different to LLVM.

This may interfere with the AddDiscriminators pass in LLVM, which is added by the unstable flag -Zdebug-info-for-profiling.

Fixes rust-lang#131944

try-job: x86_64-msvc
try-job: i686-msvc
@lqd

This comment was marked as resolved.

@jieyouxu

This comment was marked as resolved.

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-msvc failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Updating files:  99% (49788/50290)
Updating files:  99% (50205/50290)
Updating files: 100% (50290/50290)
Updating files: 100% (50290/50290), done.
branch 'try' set up to track 'origin/try'.
Switched to a new branch 'try'
[command]"C:\Program Files\Git\bin\git.exe" log -1 --format=%H
95172835831ea23234238d58927d9f403ed319a9
##[group]Run src/ci/scripts/setup-environment.sh
src/ci/scripts/setup-environment.sh
---
file:.git/config remote.origin.url=https://github.com/rust-lang-ci/rust
file:.git/config remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
file:.git/config gc.auto=0
file:.git/config http.https://github.com/.extraheader=AUTHORIZATION: basic ***
file:.git/config branch.try.remote=origin
file:.git/config branch.try.merge=refs/heads/try
file:.git/config remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*
file:.git/config submodule.library/backtrace.active=true
file:.git/config submodule.library/backtrace.url=https://github.com/rust-lang/backtrace-rs.git
file:.git/config submodule.library/stdarch.active=true
---
test [codegen] tests\codegen\vecdeque_pop_push.rs ... ok

failures:

---- [codegen] tests\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs.rs stdout ----

error: verification with 'FileCheck' failed
status: exit code: 1
command: PATH=";C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64;C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0-bootstrap-tools\x86_64-pc-windows-msvc\release\deps;C:\a\rust\rust\build\x86_64-pc-windows-msvc\stage0\bin;C:\Program Files\PowerShell\7;C:\a\_temp\msys64\mingw64\bin;C:\a\_temp\msys64\usr\local\bin;C:\a\_temp\msys64\usr\bin;C:\a\_temp\msys64\usr\bin;C:\a\rust\rust\ninja;C:\a\rust\rust\sccache;C:\a\_temp\setup-msys2;C:\Program Files\MongoDB\Server\5.0\bin;C:\aliyun-cli;C:\vcpkg;C:\Program Files (x86)\NSIS;C:\tools\zstd;C:\Program Files\Mercurial;C:\hostedtoolcache\windows\stack\3.1.1\x64;C:\cabal\bin;C:\ghcup\bin;C:\mingw64\bin;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\R\R-4.4.1\bin\x64;C:\SeleniumWebDrivers\GeckoDriver;C:\SeleniumWebDrivers\EdgeDriver;C:\SeleniumWebDrivers\ChromeDriver;C:\Program Files (x86)\sbt\bin;C:\Program Files (x86)\GitHub CLI;C:\Program Files\Git\bin;C:\Program Files (x86)\pipx_bin;C:\npm\prefix;C:\hostedtoolcache\windows\go\1.21.13\x64\bin;C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts;C:\hostedtoolcache\windows\Python\3.9.13\x64;C:\hostedtoolcache\windows\Ruby\3.0.7\x64\bin;C:\Program Files\OpenSSL\bin;C:\tools\kotlinc\bin;C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.432-6\x64\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI;C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin;C:\ProgramData\kind;C:\ProgramData\Chocolatey\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\PowerShell\7;C:\Program Files\Microsoft\Web Platform Installer;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\WiX Toolset v3.14\bin;C:\Program Files\Microsoft SQL Server\130\DTS\Binn;C:\Program Files\Microsoft SQL Server\140\DTS\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Microsoft SQL Server\160\DTS\Binn;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\ProgramData\chocolatey\lib\pulumi\tools\Pulumi\bin;C:\Program Files\CMake\bin;C:\ProgramData\chocolatey\lib\maven\apache-maven-3.8.7\bin;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code;C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager;C:\Program Files\nodejs;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\GitHub CLI;C:\tools\php;C:\Program Files (x86)\sbt\bin;C:\Program Files\Amazon\AWSCLIV2;C:\Program Files\Amazon\SessionManagerPlugin\bin;C:\Program Files\Amazon\AWSSAMCLI\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\LLVM\bin;C:\Users\runneradmin\.dotnet\tools;C:\Users\runneradmin\.cargo\bin;C:\Users\runneradmin\AppData\Local\Microsoft\WindowsApps;C:\a\_temp\msys64\usr\bin\site_perl;C:\a\_temp\msys64\usr\bin\vendor_perl;C:\a\_temp\msys64\usr\bin\core_perl" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\llvm\\build\\bin\\FileCheck.exe" "--input-file" "C:\\a\\rust\\rust\\build\\x86_64-pc-windows-msvc\\test\\codegen\\debuginfo-proc-macro\\mir_inlined_twice_var_locs\\mir_inlined_twice_var_locs.ll" "C:\\a\\rust\\rust\\tests\\codegen\\debuginfo-proc-macro\\mir_inlined_twice_var_locs.rs" "--check-prefix=CHECK" "--check-prefix" "MSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
--- stderr -------------------------------
--- stderr -------------------------------
C:\a\rust\rust\tests\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs.rs:11:15: error: CHECK-DAG: expected string not found in input
// CHECK-DAG: dbg_declare(ptr %n.dbg.spill3, ![[#var_dbg]], !DIExpression(), ![[#var_loc2:]])
              ^
C:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs\mir_inlined_twice_var_locs.ll:1:1: note: scanning from here
; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0'
^
C:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs\mir_inlined_twice_var_locs.ll:1:1: note: with "var_dbg" equal to "980"
; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0'
^
C:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs\mir_inlined_twice_var_locs.ll:41:3: note: possible intended match here
 #dbg_declare(ptr %v.dbg.spill, !416, !DIExpression(), !424)


Input file: C:\a\rust\rust\build\x86_64-pc-windows-msvc\test\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs\mir_inlined_twice_var_locs.ll
Check file: C:\a\rust\rust\tests\codegen\debuginfo-proc-macro\mir_inlined_twice_var_locs.rs

-dump-input=help explains the following input dump.
Input was:
<<<<<<
<<<<<<
          1: ; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0' 
dag:11'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
dag:11'1                                                                       with "var_dbg" equal to "980"
          2: source_filename = "mir_inlined_twice_var_locs.69d8584679f052af-cgu.0" 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          3: target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          4: target triple = "x86_64-pc-windows-msvc" 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~
dag:11'0     ~
          6: %"core::fmt::rt::Argument<'_>" = type { %"core::fmt::rt::ArgumentType<'_>" } 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          7: %"core::fmt::rt::ArgumentType<'_>" = type { ptr, [1 x i64] } 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~
dag:11'0     ~
          9: @vtable.0 = private constant <{ [24 x i8], ptr, ptr, ptr }> <{ [24 x i8] c"\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h0691698abfd82122E", ptr @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfba42c5ed90c1dacE", ptr @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfba42c5ed90c1dacE" }>, align 8, !dbg !0 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         10: @alloc_cd1513ae8d1ae22acf9342b8dfa1561d = private unnamed_addr constant <{ [164 x i8] }> <{ [164 x i8] c"unsafe precondition(s) violated: Layout::from_size_align_unchecked requires that align is a power of 2 and the rounded-up allocation size does not exceed isize::MAX" }>, align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         11: @alloc_277014ab52c48b087481792d8fd8deda = private unnamed_addr constant <{ [4 x i8] }> <{ [4 x i8] c" == " }>, align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         12: @alloc_49a1e817e911805af64bbc7efb390101 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         13: @alloc_4767a2099498456c7ed80e02add45130 = private unnamed_addr constant <{ ptr, [8 x i8], ptr, [8 x i8], ptr, [8 x i8] }> <{ ptr inttoptr (i64 1 to ptr), [8 x i8] zeroinitializer, ptr @alloc_277014ab52c48b087481792d8fd8deda, [8 x i8] c"\04\00\00\00\00\00\00\00", ptr @alloc_49a1e817e911805af64bbc7efb390101, [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         14: @0 = private unnamed_addr constant <{ [8 x i8], [8 x i8] }> <{ [8 x i8] zeroinitializer, [8 x i8] undef }>, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~
         16: ; std::rt::lang_start 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~
         17: ; Function Attrs: uwtable 
         17: ; Function Attrs: uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
         18: define hidden i64 @_ZN3std2rt10lang_start17h4d110841233a604eE(ptr %main, i64 %argc, ptr %argv, i8 %sigpipe) unnamed_addr #0 !dbg !404 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
dag:11'0     ~~~~~~~
         20:  %v.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         21:  %sigpipe.dbg.spill = alloca [1 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         22:  %argv.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         23:  %argc.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         24:  %main.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         25:  %_8 = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         26:  %_5 = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         27:  store ptr %main, ptr %main.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         28:  #dbg_declare(ptr %main.dbg.spill, !412, !DIExpression(), !418) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         29:  store i64 %argc, ptr %argc.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         30:  #dbg_declare(ptr %argc.dbg.spill, !413, !DIExpression(), !419) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         31:  store ptr %argv, ptr %argv.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         32:  #dbg_declare(ptr %argv.dbg.spill, !414, !DIExpression(), !420) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         33:  store i8 %sigpipe, ptr %sigpipe.dbg.spill, align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         34:  #dbg_declare(ptr %sigpipe.dbg.spill, !415, !DIExpression(), !421) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         35:  store ptr %main, ptr %_8, align 8, !dbg !422 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         37:  %0 = call i64 @_ZN3std2rt19lang_start_internal17h504fd7173866bbb6E(ptr align 1 %_8, ptr align 8 @vtable.0, i64 %argc, ptr %argv, i8 %sigpipe), !dbg !423 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         38:  store i64 %0, ptr %_5, align 8, !dbg !423 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         39:  %v = load i64, ptr %_5, align 8, !dbg !423 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         40:  store i64 %v, ptr %v.dbg.spill, align 8, !dbg !423 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         41:  #dbg_declare(ptr %v.dbg.spill, !416, !DIExpression(), !424) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'2       ?                                                           possible intended match
         42:  ret i64 %v, !dbg !425 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~
         43: } 
dag:11'0     ~~
dag:11'0     ~
         45: ; std::rt::lang_start::{{closure}} 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         46: ; Function Attrs: inlinehint uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         47: define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfba42c5ed90c1dacE"(ptr align 8 %_1) unnamed_addr #1 !dbg !426 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
         49:  %self.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         50:  %_1.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         51:  %self = alloca [4 x i8], align 4 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         52:  store ptr %_1, ptr %_1.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         53:  #dbg_declare(ptr %_1.dbg.spill, !433, !DIExpression(DW_OP_deref), !434) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         54:  #dbg_declare(ptr %self, !435, !DIExpression(), !453) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         55:  %_4 = load ptr, ptr %_1, align 8, !dbg !454 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         57:  call void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h2782896bbbc41147E(ptr %_4), !dbg !454 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         58: ; call <() as std::process::Termination>::report 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         59:  %0 = call i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h4c02a42d2bcbd8bcE"(), !dbg !454 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         60:  store i32 %0, ptr %self, align 4, !dbg !454 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         61:  store ptr %self, ptr %self.dbg.spill, align 8, !dbg !455 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         62:  #dbg_declare(ptr %self.dbg.spill, !456, !DIExpression(), !464) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         63:  %_6 = load i32, ptr %self, align 4, !dbg !465 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         64:  ret i32 %_6, !dbg !454 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~
         65: } 
dag:11'0     ~~
dag:11'0     ~
         67: ; std::sys::backtrace::__rust_begin_short_backtrace 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         68: ; Function Attrs: noinline uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         69: define internal void @_ZN3std3sys9backtrace28__rust_begin_short_backtrace17h2782896bbbc41147E(ptr %f) unnamed_addr #2 !dbg !466 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
dag:11'0     ~~~~~~~
         71:  %dummy.dbg.spill = alloca [0 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         72:  %f.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         73:  %result.dbg.spill = alloca [0 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         74:  #dbg_declare(ptr %result.dbg.spill, !473, !DIExpression(), !477) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         75:  store ptr %f, ptr %f.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         76:  #dbg_declare(ptr %f.dbg.spill, !472, !DIExpression(), !478) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         77:  #dbg_declare(ptr %dummy.dbg.spill, !479, !DIExpression(), !486) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         79:  call void @_ZN4core3ops8function6FnOnce9call_once17h86532e6ef0c32c69E(ptr %f), !dbg !488 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         80:  call void asm sideeffect "", "~{memory}"(), !dbg !489, !srcloc !490 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         81:  ret void, !dbg !491 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~
         82: } 
dag:11'0     ~~
dag:11'0     ~
         84: ; core::ops::function::FnOnce::call_once{{vtable.shim}} 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         85: ; Function Attrs: inlinehint uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         86: define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h0691698abfd82122E"(ptr %_1) unnamed_addr #1 !dbg !492 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
dag:11'0     ~~~~~~~
         88:  %_1.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         89:  %_2 = alloca [0 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         90:  store ptr %_1, ptr %_1.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         91:  #dbg_declare(ptr %_1.dbg.spill, !501, !DIExpression(), !506) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         92:  #dbg_declare(ptr %_2, !502, !DIExpression(), !506) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         93:  %0 = load ptr, ptr %_1, align 8, !dbg !506 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         95:  %_0 = call i32 @_ZN4core3ops8function6FnOnce9call_once17h4674338edde917d8E(ptr %0), !dbg !506 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         96:  ret i32 %_0, !dbg !506 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~
         97: } 
dag:11'0     ~~
dag:11'0     ~
         99: ; core::ops::function::FnOnce::call_once 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        100: ; Function Attrs: inlinehint uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        101: define internal i32 @_ZN4core3ops8function6FnOnce9call_once17h4674338edde917d8E(ptr %0) unnamed_addr #1 personality ptr @__CxxFrameHandler3 !dbg !507 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
        103:  %_2 = alloca [0 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        104:  %_1 = alloca [8 x i8], align 8 
        104:  %_1 = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        105:  store ptr %0, ptr %_1, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        106:  #dbg_declare(ptr %_1, !511, !DIExpression(), !513) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        107:  #dbg_declare(ptr %_2, !512, !DIExpression(), !513) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        108: ; invoke std::rt::lang_start::{{closure}} 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        109:  %_0 = invoke i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hfba42c5ed90c1dacE"(ptr align 8 %_1) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        110:  to label %bb1 unwind label %funclet_bb3, !dbg !513 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~
dag:11'0     ~
        112: bb3: ; preds = %funclet_bb3 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        113:  cleanupret from %cleanuppad unwind to caller, !dbg !513 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~
dag:11'0     ~
        115: funclet_bb3: ; preds = %start 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        116:  %cleanuppad = cleanuppad within none [] 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        117:  br label %bb3 
dag:11'0     ~~~~~~~~~~~~~~~
dag:11'0     ~
dag:11'0     ~
        119: bb1: ; preds = %start 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~
        120:  ret i32 %_0, !dbg !513 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~
        121: } 
dag:11'0     ~~
dag:11'0     ~
        123: ; core::ops::function::FnOnce::call_once 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        124: ; Function Attrs: inlinehint uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        125: define internal void @_ZN4core3ops8function6FnOnce9call_once17h86532e6ef0c32c69E(ptr %_1) unnamed_addr #1 !dbg !514 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
dag:11'0     ~~~~~~~
        127:  %_1.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        128:  %_2 = alloca [0 x i8], align 1 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        129:  store ptr %_1, ptr %_1.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        130:  #dbg_declare(ptr %_1.dbg.spill, !516, !DIExpression(), !520) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        131:  #dbg_declare(ptr %_2, !517, !DIExpression(), !520) 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        132:  call void %_1(), !dbg !520 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        133:  ret void, !dbg !520 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~
        134: } 
dag:11'0     ~~
dag:11'0     ~
dag:11'0     ~
        136: ; core::ptr::drop_in_place<core::option::Option<(alloc::string::String,alloc::string::String)>> 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        137: ; Function Attrs: uwtable 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
        138: define internal void @"_ZN4core3ptr102drop_in_place$LT$core..option..Option$LT$$LP$alloc..string..String$C$alloc..string..String$RP$$GT$$GT$17hcd1c672305b8092cE"(ptr align 8 %_1) unnamed_addr #0 !dbg !521 { 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:11'0     ~~~~~~~
dag:11'0     ~~~~~~~
        140:  %_1.dbg.spill = alloca [8 x i8], align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        141:  store ptr %_1, ptr %_1.dbg.spill, align 8 
dag:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          .
          .
>>>>>>
------------------------------------------
---
test result: FAILED. 618 passed; 1 failed; 121 ignored; 0 measured; 0 filtered out; finished in 9.00s

Some tests failed in compiletest suite=codegen mode=codegen host=x86_64-pc-windows-msvc target=x86_64-pc-windows-msvc
Build completed unsuccessfully in 0:45:56
make: *** [Makefile:106: ci-msvc-ps1] Error 1
  network time: Tue, 05 Nov 2024 14:37:22 GMT
##[error]Process completed with exit code 2.
Post job cleanup.
[command]"C:\Program Files\Git\bin\git.exe" version

@bors
Copy link
Contributor

bors commented Nov 5, 2024

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 5, 2024
@jieyouxu
Copy link
Member

jieyouxu commented Nov 5, 2024

(I edited the PR description to include a few "selected" try-jobs which should bring about reasonable target variance, rest is probably full build)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Regression] LLVM asserts "conflicting locations for variable" since 1.82
8 participants