From b79edf008f3191e28d96ed98c77fa25533c650d7 Mon Sep 17 00:00:00 2001 From: iancormac84 Date: Tue, 8 May 2018 19:57:45 -0400 Subject: [PATCH] Added extra hashing step. --- src/librustc_codegen_utils/symbol_names.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/librustc_codegen_utils/symbol_names.rs b/src/librustc_codegen_utils/symbol_names.rs index 8ddefdf474fb..2063db6dc533 100644 --- a/src/librustc_codegen_utils/symbol_names.rs +++ b/src/librustc_codegen_utils/symbol_names.rs @@ -168,6 +168,13 @@ fn get_symbol_hash<'a, 'tcx>( }); }); + // If this is a function, we hash the signature as well. + // This is not *strictly* needed, but it may help in some + // situations, see the `run-make/a-b-a-linker-guard` test. + if let ty::TyFnDef(..) = item_type.sty { + item_type.fn_sig(tcx).hash_stable(&mut hcx, &mut hasher); + } + // also include any type parameters (for generic items) assert!(!substs.has_erasable_regions()); assert!(!substs.needs_subst());