diff options
author | jkim <jkim@FreeBSD.org> | 2012-08-24 05:02:09 +0800 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2012-08-24 05:02:09 +0800 |
commit | 5fe63ebf83f1dc599d7ec3fb1b45542eb181ee02 (patch) | |
tree | 03fb6a090457c06bcb1ad673849e8fced8ea5be9 /lang | |
parent | 12bd468ea075128027fdd55a86f89926df8822cf (diff) | |
download | freebsd-ports-gnome-5fe63ebf83f1dc599d7ec3fb1b45542eb181ee02.tar.gz freebsd-ports-gnome-5fe63ebf83f1dc599d7ec3fb1b45542eb181ee02.tar.zst freebsd-ports-gnome-5fe63ebf83f1dc599d7ec3fb1b45542eb181ee02.zip |
Pull in r159895 from upstream to match Clang in the FreeBSD 9.1 base system:
http://svnweb.freebsd.org/base?view=revision&revision=238554
Approved by: brooks (maintainer)
Diffstat (limited to 'lang')
7 files changed, 43 insertions, 6 deletions
diff --git a/lang/clang/Makefile b/lang/clang/Makefile index 7685bb3fcd4a..998848aa977e 100644 --- a/lang/clang/Makefile +++ b/lang/clang/Makefile @@ -7,7 +7,7 @@ PORTNAME= clang PORTVERSION= 3.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang devel MASTER_SITES= http://llvm.org/releases/${PORTVERSION}/ DISTNAME= ${PORTNAME}-${PORTVERSION}.src diff --git a/lang/clang/files/patch-tools_clang_include_clang_Analysis_Analyses_FormatString.h b/lang/clang/files/patch-tools_clang_include_clang_Analysis_Analyses_FormatString.h index 5db58d679de1..7d178ab4f591 100644 --- a/lang/clang/files/patch-tools_clang_include_clang_Analysis_Analyses_FormatString.h +++ b/lang/clang/files/patch-tools_clang_include_clang_Analysis_Analyses_FormatString.h @@ -1,5 +1,5 @@ -$FreeBSD: /tmp/pcvs/ports/lang/clang/files/patch-tools_clang_include_clang_Analysis_Analyses_FormatString.h,v 1.2 2012-06-26 10:10:40 fluffy Exp $ +$FreeBSD$ --- tools/clang/include/clang/Analysis/Analyses/FormatString.h.orig +++ tools/clang/include/clang/Analysis/Analyses/FormatString.h diff --git a/lang/clang/files/patch-tools_clang_lib_Analysis_PrintfFormatString.cpp b/lang/clang/files/patch-tools_clang_lib_Analysis_PrintfFormatString.cpp index 5951f83f8f58..b77afbc41600 100644 --- a/lang/clang/files/patch-tools_clang_lib_Analysis_PrintfFormatString.cpp +++ b/lang/clang/files/patch-tools_clang_lib_Analysis_PrintfFormatString.cpp @@ -1,5 +1,5 @@ -$FreeBSD: /tmp/pcvs/ports/lang/clang/files/patch-tools_clang_lib_Analysis_PrintfFormatString.cpp,v 1.1 2010-10-08 14:00:31 brooks Exp $ +$FreeBSD$ --- tools/clang/lib/Analysis/PrintfFormatString.cpp.orig +++ tools/clang/lib/Analysis/PrintfFormatString.cpp diff --git a/lang/clang/files/patch-tools_clang_lib_Headers_Makefile b/lang/clang/files/patch-tools_clang_lib_Headers_Makefile index 2171d627bd10..41493c66230c 100644 --- a/lang/clang/files/patch-tools_clang_lib_Headers_Makefile +++ b/lang/clang/files/patch-tools_clang_lib_Headers_Makefile @@ -1,5 +1,5 @@ -$FreeBSD: /tmp/pcvs/ports/lang/clang/files/patch-tools_clang_lib_Headers_Makefile,v 1.2 2010-10-08 14:00:31 brooks Exp $ +$FreeBSD$ --- tools/clang/lib/Headers/Makefile.orig +++ tools/clang/lib/Headers/Makefile diff --git a/lang/clang/files/patch-tools_clang_lib_Sema_SemaChecking.cpp b/lang/clang/files/patch-tools_clang_lib_Sema_SemaChecking.cpp index c27119f111e7..f57ac2281a7f 100644 --- a/lang/clang/files/patch-tools_clang_lib_Sema_SemaChecking.cpp +++ b/lang/clang/files/patch-tools_clang_lib_Sema_SemaChecking.cpp @@ -1,5 +1,5 @@ -$FreeBSD: /tmp/pcvs/ports/lang/clang/files/patch-tools_clang_lib_Sema_SemaChecking.cpp,v 1.1 2010-10-08 14:00:31 brooks Exp $ +$FreeBSD$ --- tools/clang/lib/Sema/SemaChecking.cpp.orig +++ tools/clang/lib/Sema/SemaChecking.cpp diff --git a/lang/clang/files/patch-tools_clang_lib_Sema_SemaDeclCXX.cpp b/lang/clang/files/patch-tools_clang_lib_Sema_SemaDeclCXX.cpp new file mode 100644 index 000000000000..c185a0f223e3 --- /dev/null +++ b/lang/clang/files/patch-tools_clang_lib_Sema_SemaDeclCXX.cpp @@ -0,0 +1,37 @@ + +$FreeBSD$ + +--- tools/clang/lib/Sema/SemaDeclCXX.cpp.orig ++++ tools/clang/lib/Sema/SemaDeclCXX.cpp +@@ -10795,14 +10795,23 @@ + + void Sema::MarkVirtualMembersReferenced(SourceLocation Loc, + const CXXRecordDecl *RD) { +- for (CXXRecordDecl::method_iterator i = RD->method_begin(), +- e = RD->method_end(); i != e; ++i) { +- CXXMethodDecl *MD = *i; +- +- // C++ [basic.def.odr]p2: +- // [...] A virtual member function is used if it is not pure. [...] +- if (MD->isVirtual() && !MD->isPure()) +- MarkFunctionReferenced(Loc, MD); ++ // Mark all functions which will appear in RD's vtable as used. ++ CXXFinalOverriderMap FinalOverriders; ++ RD->getFinalOverriders(FinalOverriders); ++ for (CXXFinalOverriderMap::const_iterator I = FinalOverriders.begin(), ++ E = FinalOverriders.end(); ++ I != E; ++I) { ++ for (OverridingMethods::const_iterator OI = I->second.begin(), ++ OE = I->second.end(); ++ OI != OE; ++OI) { ++ assert(OI->second.size() > 0 && "no final overrider"); ++ CXXMethodDecl *Overrider = OI->second.front().Method; ++ ++ // C++ [basic.def.odr]p2: ++ // [...] A virtual member function is used if it is not pure. [...] ++ if (!Overrider->isPure()) ++ MarkFunctionReferenced(Loc, Overrider); ++ } + } + + // Only classes that have virtual bases need a VTT. diff --git a/lang/clang/files/patch-tools_clang_tools_scan-build_scan-build b/lang/clang/files/patch-tools_clang_tools_scan-build_scan-build index ac6e7bd25efb..291eafdeb2fc 100644 --- a/lang/clang/files/patch-tools_clang_tools_scan-build_scan-build +++ b/lang/clang/files/patch-tools_clang_tools_scan-build_scan-build @@ -1,5 +1,5 @@ -$FreeBSD: /tmp/pcvs/ports/lang/clang/files/patch-tools_clang_tools_scan-build_scan-build,v 1.1 2010-10-08 14:00:31 brooks Exp $ +$FreeBSD$ --- tools/clang/tools/scan-build/scan-build.orig +++ tools/clang/tools/scan-build/scan-build |