diff --git a/src/llvm b/src/llvm index fcda503144cc2..326b1a2bd717c 160000 --- a/src/llvm +++ b/src/llvm @@ -1 +1 @@ -Subproject commit fcda503144cc27da1a1d41c6b9417131d2fe88f8 +Subproject commit 326b1a2bd717c21a08e1ec2d82bb2d88233fa478 diff --git a/src/rustc/lib/llvm.rs b/src/rustc/lib/llvm.rs index c16fe31f93357..0d92c19b9521b 100644 --- a/src/rustc/lib/llvm.rs +++ b/src/rustc/lib/llvm.rs @@ -28,19 +28,19 @@ enum Linkage { AvailableExternallyLinkage = 1, LinkOnceAnyLinkage = 2, LinkOnceODRLinkage = 3, - WeakAnyLinkage = 4, - WeakODRLinkage = 5, - AppendingLinkage = 6, - InternalLinkage = 7, - PrivateLinkage = 8, - DLLImportLinkage = 9, - DLLExportLinkage = 10, - ExternalWeakLinkage = 11, - GhostLinkage = 12, - CommonLinkage = 13, - LinkerPrivateLinkage = 14, - LinkerPrivateWeakLinkage = 15, - LinkerPrivateWeakDefAutoLinkage = 16, + LinkOnceODRAutoHideLinkage = 4, + WeakAnyLinkage = 5, + WeakODRLinkage = 6, + AppendingLinkage = 7, + InternalLinkage = 8, + PrivateLinkage = 9, + DLLImportLinkage = 10, + DLLExportLinkage = 11, + ExternalWeakLinkage = 12, + GhostLinkage = 13, + CommonLinkage = 14, + LinkerPrivateLinkage = 15, + LinkerPrivateWeakLinkage = 16, } enum Attribute { @@ -91,6 +91,7 @@ enum IntPredicate { // enum for the LLVM RealPredicate type enum RealPredicate { + RealPredicateFalse = 0, RealOEQ = 1, RealOGT = 2, RealOGE = 3, @@ -105,6 +106,7 @@ enum RealPredicate { RealULT = 12, RealULE = 13, RealUNE = 14, + RealPredicateTrue = 15, } // enum for the LLVM TypeKind type - must stay in sync with the def of diff --git a/src/rustc/middle/trans/closure.rs b/src/rustc/middle/trans/closure.rs index 95c9812696689..1ab25a1832932 100644 --- a/src/rustc/middle/trans/closure.rs +++ b/src/rustc/middle/trans/closure.rs @@ -363,7 +363,7 @@ fn trans_expr_fn(bcx: block, let llfnty = type_of_fn_from_ty(ccx, fty); let sub_path = vec::append_one(bcx.fcx.path, path_name(special_idents::anon)); - let s = mangle_internal_name_by_path(ccx, sub_path); + let s = mangle_internal_name_by_path_and_seq(ccx, sub_path, ~"expr_fn"); let llfn = decl_internal_cdecl_fn(ccx.llmod, s, llfnty); let trans_closure_env = fn@(ck: ty::closure_kind) -> Result {