-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Closed
Labels
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.Performance or correctness regression from stable to beta.
Description
This is the full project that causes that failure, make sure to use that commit.
The culprit line is here.
Inside a match:
e if display.randr.as_ref().map_or(false, |rr| e == rr.event(xrandr::RRScreenChangeNotify))
Results in:
!dbg attachment points at wrong subprogram for function
!21995 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
i1 (i8*, %"locker::display::Extension"*)* @"_ZN12screenruster6locker6Locker5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hb41874d5593ec665E"
call void @llvm.dbg.declare(metadata %closure.114** %__debuginfo_env_ptr, metadata !59153, metadata !59154), !dbg !59155
!59155 = !DILocation(line: 214, scope: !21990)
!21990 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
!21990 = distinct !DISubprogram(name: "{{closure}}", linkageName: "_ZN12screenruster6locker8{{impl}}5spawn11{{closure}}11{{closure}}E", scope: !21991, file: !352, line: 214, type: !21992, isLocal: true, isDefinition: true, scopeLine: 214, flags: DIFlagPrototyped, isOptimized: false, templateParams: !457, variables: !457)
LLVM ERROR: Broken function found, compilation aborted!
If I change that to:
e if e == display.randr.as_ref().map_or(0, |rr| rr.event(xrandr::RRScreenChangeNotify))
Then it compiles.
I tried to come up with a reduced test case but failed, so sorry for the full project as test case.
Metadata
Metadata
Assignees
Labels
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.Performance or correctness regression from stable to beta.