Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Explicitly register MSVC/NONMSVC revisions for some codegen tests
  • Loading branch information
jieyouxu committed Dec 19, 2024
commit 5415f067bd4565fe49c77de426e2f99625311fc6
12 changes: 8 additions & 4 deletions tests/codegen/async-fn-debug-awaitee-field.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
// This test makes sure that the coroutine field capturing the awaitee in a `.await` expression
// is called "__awaitee" in debuginfo. This name must not be changed since debuggers and debugger
// extensions rely on the field having this name.

// ignore-tidy-linelength
//! This test makes sure that the coroutine field capturing the awaitee in a `.await` expression
//! is called `__awaitee` in debuginfo. This name must not be changed since debuggers and debugger
//! extensions rely on the field having this name.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc

//@ compile-flags: -C debuginfo=2 --edition=2018 -Copt-level=0

#![crate_type = "lib"]
Expand Down
8 changes: 5 additions & 3 deletions tests/codegen/debug-accessibility/crate-enum.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
//@ compile-flags: -C debuginfo=2
// ignore-tidy-linelength
//! Checks that visibility information is present in the debuginfo for crate-visibility enums.
#![allow(dead_code)]
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc

// Checks that visibility information is present in the debuginfo for crate-visibility enums.
//@ compile-flags: -C debuginfo=2

mod module {
use std::hint::black_box;
Expand Down
9 changes: 5 additions & 4 deletions tests/codegen/debug-accessibility/private-enum.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
//@ compile-flags: -C debuginfo=2
// ignore-tidy-linelength
//! Checks that visibility information is present in the debuginfo for private enums.
#![allow(dead_code)]

// Checks that visibility information is present in the debuginfo for private enums.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ compile-flags: -C debuginfo=2

use std::hint::black_box;

Expand Down
8 changes: 5 additions & 3 deletions tests/codegen/debug-accessibility/public-enum.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
//@ compile-flags: -C debuginfo=2
// ignore-tidy-linelength
//! Checks that visibility information is present in the debuginfo for types and their fields.
#![allow(dead_code)]
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc

// Checks that visibility information is present in the debuginfo for types and their fields.
//@ compile-flags: -C debuginfo=2

use std::hint::black_box;

Expand Down
9 changes: 5 additions & 4 deletions tests/codegen/debug-accessibility/super-enum.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
//@ compile-flags: -C debuginfo=2
// ignore-tidy-linelength
//! Checks that visibility information is present in the debuginfo for super-visibility enums.
#![allow(dead_code)]

// Checks that visibility information is present in the debuginfo for super-visibility enums.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ compile-flags: -C debuginfo=2

mod module {
use std::hint::black_box;
Expand Down
10 changes: 7 additions & 3 deletions tests/codegen/debug-vtable.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
// This test checks the debuginfo for the expected 3 vtables is generated for correct names and number
// of entries.
// ignore-tidy-linelength
//! This test checks the debuginfo for the expected 3 vtables is generated for correct names and
//! number of entries.

//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc

// Use the v0 symbol mangling scheme to codegen order independent of rustc version.
// Unnamed items like shims are generated in lexicographical order of their symbol name and in the
// legacy mangling scheme rustc version and generic parameters are both hashed into a single part
// of the name, thus randomizing item order with respect to rustc version.

//@ compile-flags: -Cdebuginfo=2 -Copt-level=0 -Csymbol-mangling-version=v0
// ignore-tidy-linelength

// Make sure that vtables don't have the unnamed_addr attribute when debuginfo is enabled.
// This helps debuggers more reliably map from dyn pointer to concrete type.
Expand Down
23 changes: 13 additions & 10 deletions tests/codegen/debuginfo-generic-closure-env-names.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
// This test checks that we get proper type names for closure environments and
// async-fn environments in debuginfo, especially making sure that generic arguments
// of the enclosing functions don't get lost.
//
// Unfortunately, the order that debuginfo gets emitted into LLVM IR becomes a bit hard
// to predict once async fns are involved, so DAG allows any order.
//
// Note that the test does not check async-fns when targeting MSVC because debuginfo for
// those does not follow the enum-fallback encoding yet and thus is incomplete.

// ignore-tidy-linelength
//! This test checks that we get proper type names for closure environments and
//! async-fn environments in debuginfo, especially making sure that generic arguments
//! of the enclosing functions don't get lost.
//!
//! Unfortunately, the order that debuginfo gets emitted into LLVM IR becomes a bit hard
//! to predict once async fns are involved, so DAG allows any order.
//!
//! Note that the test does not check async-fns when targeting MSVC because debuginfo for
//! those does not follow the enum-fallback encoding yet and thus is incomplete.

//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc

// Use the v0 symbol mangling scheme to codegen order independent of rustc version.
// Unnamed items like shims are generated in lexicographical order of their symbol name and in the
Expand Down
12 changes: 7 additions & 5 deletions tests/codegen/issues/issue-98678-async.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
// This test verifies the accuracy of emitted file and line debuginfo metadata for async blocks and
// async functions.
//
// ignore-tidy-linelength
//! This test verifies the accuracy of emitted file and line debuginfo metadata for async blocks and
//! async functions.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ edition:2021
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// ignore-tidy-linelength

// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-async.rs{{".*}})
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-async.rs{{".*}})

Expand Down
13 changes: 8 additions & 5 deletions tests/codegen/issues/issue-98678-closure-coroutine.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
// This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
// coroutines.
//
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
// ignore-tidy-linelength
//! This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
//! coroutines.

#![feature(coroutines, stmt_expr_attributes)]

// ignore-tidy-linelength
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-closure-coroutine.rs{{".*}})
// MSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-closure-coroutine.rs{{".*}})
Expand Down
10 changes: 6 additions & 4 deletions tests/codegen/issues/issue-98678-enum.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
// This test verifies the accuracy of emitted file and line debuginfo metadata enums.
//
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// ignore-tidy-linelength
//! This test verifies the accuracy of emitted file and line debuginfo metadata enums.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-enum.rs{{".*}})
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-enum.rs{{".*}})
Expand Down
12 changes: 7 additions & 5 deletions tests/codegen/issues/issue-98678-struct-union.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
// unions.
//
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// ignore-tidy-linelength
//! This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
//! unions.
//@ revisions: MSVC NONMSVC
//@[MSVC] only-msvc
//@[NONMSVC] ignore-msvc
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true

// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-struct-union.rs{{".*}})
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-struct-union.rs{{".*}})
Expand Down
Loading