File tree Expand file tree Collapse file tree 4 files changed +32
-2
lines changed
compiler/rustc_codegen_ssa/src/back
tests/run-make/used-proc-macro Expand file tree Collapse file tree 4 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -1870,8 +1870,13 @@ pub(crate) fn linked_symbols(
1870
1870
crate_type : CrateType ,
1871
1871
) -> Vec < ( String , SymbolExportKind ) > {
1872
1872
match crate_type {
1873
- CrateType :: Executable | CrateType :: Cdylib | CrateType :: Dylib | CrateType :: Sdylib => ( ) ,
1874
- CrateType :: Staticlib | CrateType :: ProcMacro | CrateType :: Rlib => {
1873
+ CrateType :: Executable
1874
+ | CrateType :: ProcMacro
1875
+ | CrateType :: Cdylib
1876
+ | CrateType :: Dylib
1877
+ | CrateType :: Sdylib => ( ) ,
1878
+ CrateType :: Staticlib | CrateType :: Rlib => {
1879
+ // These are not linked, so no need to generate symbols.o for them.
1875
1880
return Vec :: new ( ) ;
1876
1881
}
1877
1882
}
Original file line number Diff line number Diff line change
1
+ #![ crate_type = "lib" ]
2
+
3
+ #[ used]
4
+ static VERY_IMPORTANT_SYMBOL : u32 = 12345 ;
Original file line number Diff line number Diff line change
1
+ #![ crate_type = "proc-macro" ]
2
+
3
+ extern crate dep as _;
Original file line number Diff line number Diff line change
1
+ // Test that #[used] statics are included in the final dylib for proc-macros too.
2
+
3
+ //@ ignore-cross-compile
4
+ //@ ignore-windows llvm-readobj --all doesn't show local symbols on Windows
5
+ //@ needs-crate-type: proc-macro
6
+ //@ ignore-musl (FIXME: can't find `-lunwind`)
7
+
8
+ use run_make_support:: { dynamic_lib_name, llvm_readobj, rustc} ;
9
+
10
+ fn main ( ) {
11
+ rustc ( ) . input ( "dep.rs" ) . run ( ) ;
12
+ rustc ( ) . input ( "proc_macro.rs" ) . run ( ) ;
13
+ llvm_readobj ( )
14
+ . input ( dynamic_lib_name ( "proc_macro" ) )
15
+ . arg ( "--all" )
16
+ . run ( )
17
+ . assert_stdout_contains ( "VERY_IMPORTANT_SYMBOL" ) ;
18
+ }
You can’t perform that action at this time.
0 commit comments