about summary refs log tree commit diff
path: root/src/librustc_codegen_utils
diff options
context:
space:
mode:
authoriancormac84 <wilnathan@gmail.com>2018-05-08 19:57:45 -0400
committeriancormac84 <wilnathan@gmail.com>2018-05-17 16:41:33 -0400
commitb79edf008f3191e28d96ed98c77fa25533c650d7 (patch)
tree8c01d9af81edd3d8c99d7625058da85303d7409a /src/librustc_codegen_utils
parent6131c0a98c8dc4739e7985940474f6ae5f0941c3 (diff)
downloadrust-b79edf008f3191e28d96ed98c77fa25533c650d7.tar.gz
rust-b79edf008f3191e28d96ed98c77fa25533c650d7.zip
Added extra hashing step.
Diffstat (limited to 'src/librustc_codegen_utils')
-rw-r--r--src/librustc_codegen_utils/symbol_names.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc_codegen_utils/symbol_names.rs b/src/librustc_codegen_utils/symbol_names.rs
index 8ddefdf474f..2063db6dc53 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());