File tree 13 files changed +79
-67
lines changed
src/tools/compiletest/src
13 files changed +79
-67
lines changed Original file line number Diff line number Diff line change @@ -1958,23 +1958,16 @@ impl<'test> TestCx<'test> {
1958
1958
let mut filecheck = Command :: new ( self . config . llvm_filecheck . as_ref ( ) . unwrap ( ) ) ;
1959
1959
filecheck. arg ( "--input-file" ) . arg ( output) . arg ( & self . testpaths . file ) ;
1960
1960
1961
- // FIXME: Consider making some of these prefix flags opt-in per test,
1962
- // via `filecheck-flags` or by adding new header directives.
1963
-
1964
1961
// Because we use custom prefixes, we also have to register the default prefix.
1965
1962
filecheck. arg ( "--check-prefix=CHECK" ) ;
1966
1963
1967
- // Some tests use the current revision name as a check prefix.
1964
+ // Tests are allowed to use a revision name as a check prefix.
1968
1965
if let Some ( rev) = self . revision {
1969
1966
filecheck. arg ( "--check-prefix" ) . arg ( rev) ;
1970
1967
}
1971
1968
1972
- // Some tests also expect either the MSVC or NONMSVC prefix to be defined.
1973
- let msvc_or_not = if self . config . target . contains ( "msvc" ) { "MSVC" } else { "NONMSVC" } ;
1974
- filecheck. arg ( "--check-prefix" ) . arg ( msvc_or_not) ;
1975
-
1976
- // The filecheck tool normally fails if a prefix is defined but not used.
1977
- // However, we define several prefixes globally for all tests.
1969
+ // The filecheck tool normally fails if a prefix is defined but not used. However, sometimes
1970
+ // revisions are used to specify *compiletest* directives which are not FileCheck concerns.
1978
1971
filecheck. arg ( "--allow-unused-prefixes" ) ;
1979
1972
1980
1973
// Provide more context on failures.
Original file line number Diff line number Diff line change 1
- // This test makes sure that the coroutine field capturing the awaitee in a `.await` expression
2
- // is called "__awaitee" in debuginfo. This name must not be changed since debuggers and debugger
3
- // extensions rely on the field having this name.
4
-
5
1
// ignore-tidy-linelength
2
+ //! This test makes sure that the coroutine field capturing the awaitee in a `.await` expression
3
+ //! is called `__awaitee` in debuginfo. This name must not be changed since debuggers and debugger
4
+ //! extensions rely on the field having this name.
5
+
6
+ //@ revisions: MSVC NONMSVC
7
+ //@[MSVC] only-msvc
8
+ //@[NONMSVC] ignore-msvc
9
+
6
10
//@ compile-flags: -C debuginfo=2 --edition=2018 -Copt-level=0
7
11
8
12
#![ crate_type = "lib" ]
Original file line number Diff line number Diff line change 1
- //@ compile-flags: -C debuginfo=2
2
1
// ignore-tidy-linelength
2
+ //! Checks that visibility information is present in the debuginfo for crate-visibility enums.
3
3
4
- #![ allow( dead_code) ]
4
+ //@ revisions: MSVC NONMSVC
5
+ //@[MSVC] only-msvc
6
+ //@[NONMSVC] ignore-msvc
5
7
6
- // Checks that visibility information is present in the debuginfo for crate-visibility enums.
8
+ //@ compile-flags: -C debuginfo=2
7
9
8
10
mod module {
9
11
use std:: hint:: black_box;
Original file line number Diff line number Diff line change 1
- //@ compile-flags: -C debuginfo=2
2
1
// ignore-tidy-linelength
2
+ //! Checks that visibility information is present in the debuginfo for private enums.
3
3
4
- #![ allow( dead_code) ]
5
-
6
- // Checks that visibility information is present in the debuginfo for private enums.
4
+ //@ revisions: MSVC NONMSVC
5
+ //@[MSVC] only-msvc
6
+ //@[NONMSVC] ignore-msvc
7
+ //@ compile-flags: -C debuginfo=2
7
8
8
9
use std:: hint:: black_box;
9
10
Original file line number Diff line number Diff line change 1
- //@ compile-flags: -C debuginfo=2
2
1
// ignore-tidy-linelength
2
+ //! Checks that visibility information is present in the debuginfo for types and their fields.
3
3
4
- #![ allow( dead_code) ]
4
+ //@ revisions: MSVC NONMSVC
5
+ //@[MSVC] only-msvc
6
+ //@[NONMSVC] ignore-msvc
5
7
6
- // Checks that visibility information is present in the debuginfo for types and their fields.
8
+ //@ compile-flags: -C debuginfo=2
7
9
8
10
use std:: hint:: black_box;
9
11
Original file line number Diff line number Diff line change 1
- //@ compile-flags: -C debuginfo=2
2
1
// ignore-tidy-linelength
2
+ //! Checks that visibility information is present in the debuginfo for super-visibility enums.
3
3
4
- #![ allow( dead_code) ]
5
-
6
- // Checks that visibility information is present in the debuginfo for super-visibility enums.
4
+ //@ revisions: MSVC NONMSVC
5
+ //@[MSVC] only-msvc
6
+ //@[NONMSVC] ignore-msvc
7
+ //@ compile-flags: -C debuginfo=2
7
8
8
9
mod module {
9
10
use std:: hint:: black_box;
Original file line number Diff line number Diff line change 1
- // This test checks the debuginfo for the expected 3 vtables is generated for correct names and number
2
- // of entries.
1
+ // ignore-tidy-linelength
2
+ //! This test checks the debuginfo for the expected 3 vtables is generated for correct names and
3
+ //! number of entries.
4
+
5
+ //@ revisions: MSVC NONMSVC
6
+ //@[MSVC] only-msvc
7
+ //@[NONMSVC] ignore-msvc
3
8
4
9
// Use the v0 symbol mangling scheme to codegen order independent of rustc version.
5
10
// Unnamed items like shims are generated in lexicographical order of their symbol name and in the
6
11
// legacy mangling scheme rustc version and generic parameters are both hashed into a single part
7
12
// of the name, thus randomizing item order with respect to rustc version.
8
13
9
14
//@ compile-flags: -Cdebuginfo=2 -Copt-level=0 -Csymbol-mangling-version=v0
10
- // ignore-tidy-linelength
11
15
12
16
// Make sure that vtables don't have the unnamed_addr attribute when debuginfo is enabled.
13
17
// This helps debuggers more reliably map from dyn pointer to concrete type.
Original file line number Diff line number Diff line change 1
- // This test checks that we get proper type names for closure environments and
2
- // async-fn environments in debuginfo, especially making sure that generic arguments
3
- // of the enclosing functions don't get lost.
4
- //
5
- // Unfortunately, the order that debuginfo gets emitted into LLVM IR becomes a bit hard
6
- // to predict once async fns are involved, so DAG allows any order.
7
- //
8
- // Note that the test does not check async-fns when targeting MSVC because debuginfo for
9
- // those does not follow the enum-fallback encoding yet and thus is incomplete.
10
-
11
1
// ignore-tidy-linelength
2
+ //! This test checks that we get proper type names for closure environments and
3
+ //! async-fn environments in debuginfo, especially making sure that generic arguments
4
+ //! of the enclosing functions don't get lost.
5
+ //!
6
+ //! Unfortunately, the order that debuginfo gets emitted into LLVM IR becomes a bit hard
7
+ //! to predict once async fns are involved, so DAG allows any order.
8
+ //!
9
+ //! Note that the test does not check async-fns when targeting MSVC because debuginfo for
10
+ //! those does not follow the enum-fallback encoding yet and thus is incomplete.
11
+
12
+ //@ revisions: MSVC NONMSVC
13
+ //@[MSVC] only-msvc
14
+ //@[NONMSVC] ignore-msvc
12
15
13
16
// Use the v0 symbol mangling scheme to codegen order independent of rustc version.
14
17
// Unnamed items like shims are generated in lexicographical order of their symbol name and in the
Original file line number Diff line number Diff line change 1
- // This test verifies the accuracy of emitted file and line debuginfo metadata for async blocks and
2
- // async functions.
3
- //
1
+ // ignore-tidy-linelength
2
+ //! This test verifies the accuracy of emitted file and line debuginfo metadata for async blocks and
3
+ //! async functions.
4
+
5
+ //@ revisions: MSVC NONMSVC
6
+ //@[MSVC] only-msvc
7
+ //@[NONMSVC] ignore-msvc
4
8
//@ edition:2021
5
9
//@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
6
10
7
- // ignore-tidy-linelength
8
-
9
11
// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-async.rs{{".*}})
10
12
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-async.rs{{".*}})
11
13
Original file line number Diff line number Diff line change 1
- // This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
2
- // coroutines.
3
- //
4
- //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
1
+ // ignore-tidy-linelength
2
+ //! This test verifies the accuracy of emitted file and line debuginfo metadata for closures and
3
+ //! coroutines.
4
+
5
5
#![ feature( coroutines, stmt_expr_attributes) ]
6
6
7
- // ignore-tidy-linelength
7
+ //@ revisions: MSVC NONMSVC
8
+ //@[MSVC] only-msvc
9
+ //@[NONMSVC] ignore-msvc
10
+ //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
8
11
9
12
// NONMSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-closure-coroutine.rs{{".*}})
10
13
// MSVC-DAG: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-closure-coroutine.rs{{".*}})
Original file line number Diff line number Diff line change 1
- // This test verifies the accuracy of emitted file and line debuginfo metadata enums.
2
- //
3
- //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
4
-
5
1
// ignore-tidy-linelength
2
+ //! This test verifies the accuracy of emitted file and line debuginfo metadata enums.
3
+
4
+ //@ revisions: MSVC NONMSVC
5
+ //@[MSVC] only-msvc
6
+ //@[NONMSVC] ignore-msvc
7
+ //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
6
8
7
9
// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-enum.rs{{".*}})
8
10
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-enum.rs{{".*}})
Original file line number Diff line number Diff line change 1
- // This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
2
- // unions.
3
- //
4
- //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
5
-
6
1
// ignore-tidy-linelength
2
+ //! This test verifies the accuracy of emitted file and line debuginfo metadata for structs and
3
+ //! unions.
4
+
5
+ //@ revisions: MSVC NONMSVC
6
+ //@[MSVC] only-msvc
7
+ //@[NONMSVC] ignore-msvc
8
+ //@ compile-flags: --crate-type=lib -Copt-level=0 -Cdebuginfo=2 -Zdebug-info-type-line-numbers=true
7
9
8
10
// NONMSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*[/\\]}}issue-98678-struct-union.rs{{".*}})
9
11
// MSVC: ![[#FILE:]] = !DIFile({{.*}}filename:{{.*}}\\issue-98678-struct-union.rs{{".*}})
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments