diff --git a/.gitignore b/.gitignore index ed40a9fb..afe2ec81 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,11 @@ documentation/UsersGuide/UsersGuide.pdf documentation/UsersGuide/UsersGuide.out documentation/UsersGuide/UsersGuide.toc documentation/UsersGuide/UsersGuide.html + +documentation/RDS/RDS.aux +documentation/RDS/RDS.dvi +documentation/RDS/RDS.out +documentation/RDS/RDS.pdf +documentation/RDS/RDS.tex +documentation/RDS/RDS.toc + diff --git a/katabatic/src/AutoSegment.cpp b/katabatic/src/AutoSegment.cpp index fd0f0d7c..cb690f65 100644 --- a/katabatic/src/AutoSegment.cpp +++ b/katabatic/src/AutoSegment.cpp @@ -1048,8 +1048,10 @@ namespace Katabatic { canonical->setFlags( SegCanonical ); if (hasGlobal) { - for ( size_t i=0 ; isetFlags( SegWeakGlobal ); + for ( size_t i=0 ; iisGlobal()) + segments[i]->setFlags( SegWeakGlobal ); + } } else { for ( size_t i=0 ; iunsetFlags( SegWeakGlobal ); @@ -1742,7 +1744,8 @@ namespace Katabatic { unsigned int rflags = 0; - if (doglegGCell->isUnderIoPad()) { + if ( doglegGCell->isUnderIoPad() + and (Session::getKatabatic()->getState() != EngineGlobalLoaded) ) { cerr << Bug( "Attempt to make a dogleg in a GCell under a Pad\n" " %s\n" " %s" diff --git a/katabatic/src/Session.cpp b/katabatic/src/Session.cpp index 97df43d4..f7ca3459 100644 --- a/katabatic/src/Session.cpp +++ b/katabatic/src/Session.cpp @@ -172,8 +172,8 @@ namespace Katabatic { ltrace(110) << "Canonical: " << canonical << endl; for ( size_t j=0 ; jsetFlags ( SegWeakGlobal ); - else aligneds[j]->unsetFlags( SegWeakGlobal ); + if (isWeakGlobal and not aligneds[j]->isGlobal()) aligneds[j]->setFlags ( SegWeakGlobal ); + else aligneds[j]->unsetFlags( SegWeakGlobal ); if (aligneds[j] == canonical) continue; if (aligneds[j]->isCanonical()) {