bin/187103: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Wed Mar 5 22:50:01 UTC 2014
The following reply was made to PR bin/187103; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: bin/187103: commit references a PR
Date: Wed, 5 Mar 2014 22:43:43 +0000 (UTC)
Author: dim
Date: Wed Mar 5 22:43:30 2014
New Revision: 262809
URL: http://svnweb.freebsd.org/changeset/base/262809
Log:
Pull in r203007 from upstream clang trunk:
Don't produce an alias between destructors with different calling conventions.
Fixes pr19007.
(Please note that is an LLVM PR identifier, not a FreeBSD one.)
This should fix Firefox and/or libxul crashes (due to problems with
regparm/stdcall calling conventions) on i386.
Reported by: multiple users on freebsd-current
PR: bin/187103
MFC after: 1 week
Modified:
head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
Modified: head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp Wed Mar 5 22:04:30 2014 (r262808)
+++ head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp Wed Mar 5 22:43:30 2014 (r262809)
@@ -92,7 +92,13 @@ bool CodeGenModule::TryEmitBaseDestructo
if (!ClassLayout.getBaseClassOffset(UniqueBase).isZero())
return true;
+ // Give up if the calling conventions don't match. We could update the call,
+ // but it is probably not worth it.
const CXXDestructorDecl *BaseD = UniqueBase->getDestructor();
+ if (BaseD->getType()->getAs<FunctionType>()->getCallConv() !=
+ D->getType()->getAs<FunctionType>()->getCallConv())
+ return true;
+
return TryEmitDefinitionAsAlias(GlobalDecl(D, Dtor_Base),
GlobalDecl(BaseD, Dtor_Base),
false);
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-bugs
mailing list