gentoo-overlay/sys-devel/llvm/files/llvm-3.3-R600_debug.patch

22 lines
909 B
Diff

Fixes compilation of llvm-3.3 on gcc-4.6 and 4.7 when VIDEO_CARDS=radeon
This issue is caused because although Q is a multiset the original code tries to get
a set iterator which can't be converted in a multiset one.
The fix is as simple as just using a multiset iterator.
Patch by Francisco Blas Izquierdo Riera (klondike)
Consider the changes in the Public Domain
https://bugs.gentoo.org/show_bug.cgi?id=474096
--- lib/Target/R600/R600MachineScheduler.cpp
+++ lib/Target/R600/R600MachineScheduler.cpp
@@ -290,7 +290,7 @@
SUnit *R600SchedStrategy::PopInst(std::multiset<SUnit *, CompareSUnit> &Q) {
if (Q.empty())
return NULL;
- for (std::set<SUnit *, CompareSUnit>::iterator It = Q.begin(), E = Q.end();
+ for (std::multiset<SUnit *, CompareSUnit>::iterator It = Q.begin(), E = Q.end();
It != E; ++It) {
SUnit *SU = *It;
InstructionsGroupCandidate.push_back(SU->getInstr());