зеркало из https://github.com/microsoft/clang-1.git
cb2e00ff65
edge cases and have better behavior. Specifically, we should actually prefer the general '4.6' version string over the '4.6.1' string, as '4.6.2' should be able to replace it without breaking rpaths or any other place that these paths have been embedded. Debian-based distributions are already using a path structure with symlinks to achieve in-place upgrades for patch versions. Now our parsing reflects this and we select the shorter paths instead of the longer paths. A separate issue was that we would not parse a leading patch version number even in the presence of a suffix. The above change makes this more problematic as it would cause a suffix being added to make us treat the entire thing as patch-version-agnostic, which it isn't. This changes the logic to distinguish between '4.4.x' and 4.4.1-x', and retain that the latter has *some* patch number information. Currently, we always bias toward the shorter and more canonical version strings. If it becomes important we can add more Debian like rules to produce sequences such as '4.4.1b' > '4.4.1' > '4.4.1-rc3' > '4.4.1-rc2' > '4.4.1-pre5', but I'm very doubtful this will ever matter or be desirable. I've made the tests for this logic a bit more interesting, and added some specific tests for logic that is now different. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143841 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
ARCMT | ||
ASTMerge | ||
Analysis | ||
CXX | ||
CodeCompletion | ||
CodeGen | ||
CodeGenCUDA | ||
CodeGenCXX | ||
CodeGenObjC | ||
CodeGenObjCXX | ||
CodeGenOpenCL | ||
Coverage | ||
Driver | ||
FixIt | ||
Frontend | ||
Headers | ||
Index | ||
Lexer | ||
Misc | ||
Modules | ||
PCH | ||
Parser | ||
Preprocessor | ||
Rewriter | ||
Sema | ||
SemaCUDA | ||
SemaCXX | ||
SemaObjC | ||
SemaObjCXX | ||
SemaOpenCL | ||
SemaTemplate | ||
Unit | ||
CMakeLists.txt | ||
Makefile | ||
TestRunner.sh | ||
cxx-sections.data | ||
lit.cfg | ||
lit.site.cfg.in | ||
make_test_dirs.pl |