[PATCH] Fix build with STLPort and gcc

Logan Chien tzuhsiang.chien at gmail.com
Thu Mar 21 08:52:01 PDT 2013


Hi,

IIRC, the root cause of this problem is that stlport contains an
extension.  It is possible to fix this by disabling such extension with:

#define _STLP_NO_CONTAINERS_EXTENSION 1

in your stlport configuration, or pre-define them with CXXFLAGS.

Sincerely,
Logan


On Thu, Mar 21, 2013 at 10:44 PM, Duncan Sands <baldrick at free.fr> wrote:

> Hi Matt, does this continue to work if you use 0 rather than NULL?  That
> would
> be more in keeping with LLVM style.
>
> Ciao, Duncan.
>
>
> On 21/03/13 01:30, Matt Arsenault wrote:
>
>>    Nope, I was right the first time
>>
>> http://llvm-reviews.chandlerc.**com/D561<http://llvm-reviews.chandlerc.com/D561>
>>
>> CHANGE SINCE LAST DIFF
>>    http://llvm-reviews.chandlerc.**com/D561?vs=1344&id=1345#toc<http://llvm-reviews.chandlerc.com/D561?vs=1344&id=1345#toc>
>>
>> Files:
>>    lib/Analysis/**PathProfileVerifier.cpp
>>    lib/Analysis/ProfileInfo.cpp
>>
>> Index: lib/Analysis/**PathProfileVerifier.cpp
>> ==============================**==============================**=======
>> --- lib/Analysis/**PathProfileVerifier.cpp
>> +++ lib/Analysis/**PathProfileVerifier.cpp
>> @@ -84,7 +84,7 @@
>>     for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
>>       if (F->isDeclaration()) continue;
>>
>> -    arrayMap[0][F->begin()][0] = i++;
>> +    arrayMap[(BasicBlock*)NULL][F-**>begin()][0] = i++;
>>
>>       for (Function::iterator BB = F->begin(), E = F->end(); BB != E;
>> ++BB) {
>>         TerminatorInst *TI = BB->getTerminator();
>> @@ -125,7 +125,7 @@
>>               << currentPath->getCount() << "\n");
>>         // setup the entry edge (normally path profiling doesn't care
>> about this)
>>         if (currentPath->**getFirstBlockInPath() == &F->getEntryBlock())
>> -        edgeArray[arrayMap[0][**currentPath->**
>> getFirstBlockInPath()][0]]
>> +        edgeArray[arrayMap[(**BasicBlock*)NULL][currentPath-**
>> >getFirstBlockInPath()][0]]
>>             += currentPath->getCount();
>>
>>         for( ProfilePathEdgeIterator nextEdge = pev->begin(),
>> Index: lib/Analysis/ProfileInfo.cpp
>> ==============================**==============================**=======
>> --- lib/Analysis/ProfileInfo.cpp
>> +++ lib/Analysis/ProfileInfo.cpp
>> @@ -166,7 +166,7 @@
>>   template<>
>>   void ProfileInfoT<Function,**BasicBlock>::
>>           setExecutionCount(const BasicBlock *BB, double w) {
>> -  DEBUG(dbgs() << "Creating Block " << BB->getName()
>> +  DEBUG(dbgs() << "Creating Block " << BB->getName()
>>                  << " (weight: " << format("%.20g",w) << ")\n");
>>     BlockInformation[BB->**getParent()][BB] = w;
>>   }
>> @@ -249,7 +249,7 @@
>>
>>       succ_const_iterator Succ = succ_begin(BB), End = succ_end(BB);
>>       if (Succ == End) {
>> -      P[0] = BB;
>> +      P[(const BasicBlock*)NULL] = BB;
>>         if (Mode & GetPathToExit) {
>>           hasFoundPath = true;
>>           BB = 0;
>> @@ -752,10 +752,10 @@
>>              Succ != End; ++Succ) {
>>           Path P;
>>           GetPath(*Succ, 0, P, GetPathToExit);
>> -        if (Dest && Dest != P[0]) {
>> +        if (Dest && Dest != P[(const BasicBlock*)NULL]) {
>>             AllEdgesHaveSameReturn = false;
>>           }
>> -        Dest = P[0];
>> +        Dest = P[(const BasicBlock*)NULL];
>>         }
>>         if (AllEdgesHaveSameReturn) {
>>           if(EstimateMissingEdges(BB)) {
>> @@ -927,7 +927,7 @@
>>
>>         Path P;
>>         const BasicBlock *Dest = GetPath(BB, 0, P, GetPathToExit |
>> GetPathWithNewEdges);
>> -      Dest = P[0];
>> +      Dest = P[(const BasicBlock*)NULL];
>>         if (!Dest) continue;
>>
>>         if (getEdgeWeight(getEdge(Dest,0)**) == MissingValue) {
>>
>>
>>
>> ______________________________**_________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/**mailman/listinfo/llvm-commits<http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits>
>>
>>
> ______________________________**_________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/**mailman/listinfo/llvm-commits<http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130321/35bc8885/attachment.html>


More information about the llvm-commits mailing list