diff options
| author | Joerg Sonnenberger <joerg@bec.de> | 2013-11-11 14:00:37 +0000 |
|---|---|---|
| committer | Joerg Sonnenberger <joerg@bec.de> | 2013-11-11 14:00:37 +0000 |
| commit | 0e921f2bd9b602a54791d8cf0c6f9b8123e7ed54 (patch) | |
| tree | 9950032bdb1f2e34cc8198068a9e73d2fb00bb89 /clang/lib/Basic | |
| parent | dee7160baf27e5f93a3605fb08438f805cff1b7a (diff) | |
| download | bcm5719-llvm-0e921f2bd9b602a54791d8cf0c6f9b8123e7ed54.tar.gz bcm5719-llvm-0e921f2bd9b602a54791d8cf0c6f9b8123e7ed54.zip | |
NetBSD 6.99.26 switched to default rounding mode, so adjust
__FLT_EVAL_METHOD__ accordingly. Add test case for this and the SSE2
variances on NetBSD.
llvm-svn: 194377
Diffstat (limited to 'clang/lib/Basic')
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index f6b1a150f82..17d75e2c32a 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2995,7 +2995,12 @@ public: : NetBSDTargetInfo<X86_32TargetInfo>(Triple) {} virtual unsigned getFloatEvalMethod() const { - // NetBSD defaults to "double" rounding + unsigned Major, Minor, Micro; + getTriple().getOSVersion(Major, Minor, Micro); + // New NetBSD uses the default rounding mode. + if (Major >= 7 || (Major == 6 && Minor == 99 && Micro >= 26) || Major == 0) + return X86_32TargetInfo::getFloatEvalMethod(); + // NetBSD before 6.99.26 defaults to "double" rounding. return 1; } }; |

