Skip to content

Conversation

imgbot[bot]
Copy link

@imgbot imgbot bot commented Jun 10, 2025

Beep boop. Your images are optimized!

Your image file size has been reduced by 30% 🎉

Details
File Before After Percent reduction
/src/doc/rustc-dev-guide/src/img/wpa-stack.png 142.16kb 74.95kb 47.28%
/src/doc/rustc-dev-guide/src/img/coverage-branch-counting-01.png 11.02kb 6.11kb 44.58%
/src/doc/rustc-dev-guide/src/img/llvm-cov-show-01.png 406.98kb 242.59kb 40.39%
/src/doc/rustc/src/images/llvm-cov-show-01.png 406.98kb 242.59kb 40.39%
/src/doc/rustc-dev-guide/src/queries/example-0.png 104.08kb 65.67kb 36.90%
/src/doc/rustc-dev-guide/src/img/github-cli.png 26.16kb 17.17kb 34.36%
/src/doc/rustc-dev-guide/src/img/submodule-conflicts.png 19.74kb 13.10kb 33.63%
/src/doc/rustc-dev-guide/src/img/dataflow-graphviz-example.png 79.97kb 53.10kb 33.60%
/src/doc/rustc-dev-guide/src/img/rustbot-submodules.png 25.42kb 17.63kb 30.64%
/src/doc/rustdoc/src/images/collapsed-long-item.png 16.62kb 12.24kb 26.37%
/src/doc/rustc-dev-guide/src/img/other-peoples-commits.png 294.45kb 216.95kb 26.32%
/src/doc/rustc-dev-guide/src/img/github-whitespace-changes.png 28.53kb 21.22kb 25.64%
/src/doc/rustdoc/src/images/collapsed-trait-impls.png 43.19kb 32.20kb 25.45%
/src/doc/rustc/src/images/image1.png 161.03kb 129.72kb 19.45%
/src/doc/rustc/src/images/image2.png 151.67kb 123.64kb 18.48%
/src/doc/rustc-dev-guide/src/img/wpa-initial-memory.png 305.31kb 272.61kb 10.71%
/src/librustdoc/html/static/images/favicon-32x32.png 1.10kb 1.04kb 4.89%
/src/doc/rustc/src/images/image3.png 19.47kb 19.11kb 1.83%
Total : 2,243.88kb 1,561.66kb 30.40%

📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

~Imgbot - Part of Optimole family

*Total -- 2,243.88kb -> 1,561.66kb (30.4%)

/src/doc/rustc-dev-guide/src/img/wpa-stack.png -- 142.16kb -> 74.95kb (47.28%)
/src/doc/rustc-dev-guide/src/img/coverage-branch-counting-01.png -- 11.02kb -> 6.11kb (44.58%)
/src/doc/rustc-dev-guide/src/img/llvm-cov-show-01.png -- 406.98kb -> 242.59kb (40.39%)
/src/doc/rustc/src/images/llvm-cov-show-01.png -- 406.98kb -> 242.59kb (40.39%)
/src/doc/rustc-dev-guide/src/queries/example-0.png -- 104.08kb -> 65.67kb (36.9%)
/src/doc/rustc-dev-guide/src/img/github-cli.png -- 26.16kb -> 17.17kb (34.36%)
/src/doc/rustc-dev-guide/src/img/submodule-conflicts.png -- 19.74kb -> 13.10kb (33.63%)
/src/doc/rustc-dev-guide/src/img/dataflow-graphviz-example.png -- 79.97kb -> 53.10kb (33.6%)
/src/doc/rustc-dev-guide/src/img/rustbot-submodules.png -- 25.42kb -> 17.63kb (30.64%)
/src/doc/rustdoc/src/images/collapsed-long-item.png -- 16.62kb -> 12.24kb (26.37%)
/src/doc/rustc-dev-guide/src/img/other-peoples-commits.png -- 294.45kb -> 216.95kb (26.32%)
/src/doc/rustc-dev-guide/src/img/github-whitespace-changes.png -- 28.53kb -> 21.22kb (25.64%)
/src/doc/rustdoc/src/images/collapsed-trait-impls.png -- 43.19kb -> 32.20kb (25.45%)
/src/doc/rustc/src/images/image1.png -- 161.03kb -> 129.72kb (19.45%)
/src/doc/rustc/src/images/image2.png -- 151.67kb -> 123.64kb (18.48%)
/src/doc/rustc-dev-guide/src/img/wpa-initial-memory.png -- 305.31kb -> 272.61kb (10.71%)
/src/librustdoc/html/static/images/favicon-32x32.png -- 1.10kb -> 1.04kb (4.89%)
/src/doc/rustc/src/images/image3.png -- 19.47kb -> 19.11kb (1.83%)

Signed-off-by: ImgBotApp <[email protected]>
rust-cloud-vms bot pushed a commit that referenced this pull request Jul 1, 2025
rust-cloud-vms bot pushed a commit that referenced this pull request Jul 19, 2025
fix: check against 'main' function name instead of entrypoint function
rust-cloud-vms bot pushed a commit that referenced this pull request Jul 19, 2025
…-lines-debuginfo, r=wesleywiser

tests: Test line debuginfo for linebreaked function parameters

Closes rust-lang#45010 which just [E-needs-test](rust-lang#45010 (comment)).

To verify that this is actually a regression test, do this, which is a simplified and adapted version of what compiletest does for 1.39 and then 1.88:

```sh
for toolchain in 1.39 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--emit" "llvm-ir" "-o" "/tmp/fn-parameters-on-different-lines-debuginfo.ll"  "-g" "-Copt-level=0"
    "build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--check-prefix=CHECK" "--dump-input-context" "100" && echo OK || echo FAIL
done
```

which gives

```
With 1.39:
FAIL

With 1.88:
OK
```

<details>
<summary>Click to expand full output</summary>

```
$ for toolchain in 1.39 1.88; do
    echo -e "\nWith $toolchain:"
    rustc +$toolchain "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--emit" "llvm-ir" "-o" "/tmp/fn-parameters-on-different-lines-debuginfo.ll"  "-g" "-Copt-level=0"
    "build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--check-prefix=CHECK" "--dump-input-context" "100" && echo OK || echo FAIL
done

With 1.39:
tests/codegen/fn-parameters-on-different-lines-debuginfo.rs:16:16: error: CHECK-SAME: expected string not found in input
// CHECK-SAME: line: 10
               ^
/tmp/fn-parameters-on-different-lines-debuginfo.ll:69:42: note: scanning from here
!10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9)
                                         ^
/tmp/fn-parameters-on-different-lines-debuginfo.ll:69:64: note: possible intended match here
!10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9)
                                                               ^

Input file: /tmp/fn-parameters-on-different-lines-debuginfo.ll
Check file: tests/codegen/fn-parameters-on-different-lines-debuginfo.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           1: ; ModuleID = 'fn_parameters_on_different_lines_debuginfo.3a1fbbbh-cgu.0'
           2: source_filename = "fn_parameters_on_different_lines_debuginfo.3a1fbbbh-cgu.0"
           3: target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
           4: target triple = "x86_64-unknown-linux-gnu"
           5:
           6: ``@str.0`` = internal constant [59 x i8] c"tests/codegen/fn-parameters-on-different-lines-debuginfo.rs"
           7: ``@str.1`` = internal constant [28 x i8] c"attempt to add with overflow"
           8: ``@panic_loc.2`` = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* ``@str.1`` to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([59 x i8]* ``@str.0`` to [0 x i8]*), i64 59 }, i32 13, i32 3 }, align 8
           9: ``@__rustc_debug_gdb_scripts_section__`` = linkonce_odr unnamed_addr constant [34 x i8] c"\01gdb_load_rust_pretty_printers.py\00", section ".debug_gdb_scripts", align 1
          10:
          11: ; fn_parameters_on_different_lines_debuginfo::foo
          12: ; Function Attrs: nonlazybind uwtable
          13: define i32 ``@_ZN42fn_parameters_on_different_lines_debuginfo3foo17ha98e7c29f4ed8d60E(i32,`` i32) unnamed_addr #0 !dbg !5 {
          14: start:
          15:  %y = alloca i32, align 4
          16:  %x = alloca i32, align 4
          17:  store i32 %0, i32* %x, align 4
          18:  call void ``@llvm.dbg.declare(metadata`` i32* %x, metadata !10, metadata !DIExpression()), !dbg !11
          19:  store i32 %1, i32* %y, align 4
          20:  call void ``@llvm.dbg.declare(metadata`` i32* %y, metadata !12, metadata !DIExpression()), !dbg !11
          21:  %2 = load i32, i32* %x, align 4, !dbg !13
          22:  %3 = load i32, i32* %y, align 4, !dbg !14
          23:  %4 = call { i32, i1 } ``@llvm.sadd.with.overflow.i32(i32`` %2, i32 %3), !dbg !13
          24:  %5 = extractvalue { i32, i1 } %4, 0, !dbg !13
          25:  %6 = extractvalue { i32, i1 } %4, 1, !dbg !13
          26:  %7 = call i1 ``@llvm.expect.i1(i1`` %6, i1 false), !dbg !13
          27:  br i1 %7, label %panic, label %bb1, !dbg !13
          28:
          29: bb1: ; preds = %start
          30:  ret i32 %5, !dbg !15
          31:
          32: panic: ; preds = %start
          33: ; call core::panicking::panic
          34:  call void ``@_ZN4core9panicking5panic17h2f49f09cf859b728E({`` [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* ``@panic_loc.2`` to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !13
          35:  unreachable, !dbg !13
          36: }
          37:
          38: ; Function Attrs: nounwind readnone speculatable
          39: declare void ``@llvm.dbg.declare(metadata,`` metadata, metadata) #1
          40:
          41: ; Function Attrs: nounwind readnone speculatable
          42: declare { i32, i1 } ``@llvm.sadd.with.overflow.i32(i32,`` i32) #1
          43:
          44: ; Function Attrs: nounwind readnone
          45: declare i1 ``@llvm.expect.i1(i1,`` i1) rust-lang#2
          46:
          47: ; core::panicking::panic
          48: ; Function Attrs: cold noinline noreturn nonlazybind uwtable
          49: declare void ``@_ZN4core9panicking5panic17h2f49f09cf859b728E({`` [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40)) unnamed_addr rust-lang#3
          50:
          51: attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
          52: attributes #1 = { nounwind readnone speculatable }
          53: attributes rust-lang#2 = { nounwind readnone }
          54: attributes rust-lang#3 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
          55:
          56: !llvm.module.flags = !{!0, !1}
          57: !llvm.dbg.cu = !{!2}
          58:
          59: !0 = !{i32 2, !"RtLibUseGOT", i32 1}
          60: !1 = !{i32 2, !"Debug Info Version", i32 3}
          61: !2 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !3, producer: "clang LLVM (rustc version 1.39.0 (4560ea7 2019-11-04))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4)
          62: !3 = !DIFile(filename: "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs", directory: "/home/martin/src/rust")
          63: !4 = !{}
          64: !5 = distinct !DISubprogram(name: "foo", linkageName: "_ZN42fn_parameters_on_different_lines_debuginfo3foo17ha98e7c29f4ed8d60E", scope: !6, file: !3, line: 9, type: !7, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, templateParams: !4, retainedNodes: !4)
          65: !6 = !DINamespace(name: "fn_parameters_on_different_lines_debuginfo", scope: null)
          66: !7 = !DISubroutineType(types: !8)
          67: !8 = !{!9, !9, !9}
          68: !9 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed)
          69: !10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9)
same:16'0                                              X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
same:16'1                                                                    ?                   possible intended match
          70: !11 = !DILocation(line: 1, scope: !5)
same:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          71: !12 = !DILocalVariable(name: "y", arg: 2, scope: !5, file: !3, line: 1, type: !9)
same:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          72: !13 = !DILocation(line: 13, column: 2, scope: !5)
same:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          73: !14 = !DILocation(line: 13, column: 6, scope: !5)
same:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          74: !15 = !DILocation(line: 13, column: 9, scope: !5)
same:16'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
FAIL

With 1.88:
OK
```

<details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant