]> granicus.if.org Git - clang/commitdiff
__FLT_EVAL_METHOD__ should be 1 on NetBSD/i386, since it defaults to
authorJoerg Sonnenberger <joerg@bec.de>
Fri, 6 Jan 2012 18:32:26 +0000 (18:32 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Fri, 6 Jan 2012 18:32:26 +0000 (18:32 +0000)
"double" rounding.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147669 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp

index dd85c64496a6d9fe05dfb680f9ad74f66c753a38..51538f1a775971385e36232ecb89bb1c5786e498 100644 (file)
@@ -2184,6 +2184,20 @@ public:
 };
 } // end anonymous namespace
 
+namespace {
+class NetBSDI386TargetInfo : public NetBSDTargetInfo<X86_32TargetInfo> {
+public:
+  NetBSDI386TargetInfo(const std::string &triple) :
+    NetBSDTargetInfo<X86_32TargetInfo>(triple) {
+  }
+
+  virtual unsigned getFloatEvalMethod() const {
+    // NetBSD defaults to "double" rounding
+    return 1;
+  }
+};
+} // end anonymous namespace
+
 namespace {
 class OpenBSDI386TargetInfo : public OpenBSDTargetInfo<X86_32TargetInfo> {
 public:
@@ -3889,7 +3903,7 @@ static TargetInfo *AllocateTarget(const std::string &T) {
     case llvm::Triple::DragonFly:
       return new DragonFlyBSDTargetInfo<X86_32TargetInfo>(T);
     case llvm::Triple::NetBSD:
-      return new NetBSDTargetInfo<X86_32TargetInfo>(T);
+      return new NetBSDI386TargetInfo(T);
     case llvm::Triple::OpenBSD:
       return new OpenBSDI386TargetInfo(T);
     case llvm::Triple::FreeBSD: