[flang] Add -f[no-]signed-zeros

Only add the option processing and store the result. No attributes are
added to FIR yet.

Differential Revision: https://reviews.llvm.org/D137328
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp
index 0e82194..a5b4712 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -86,6 +86,7 @@
   bool HonorINFs = true;
   bool HonorNaNs = true;
   bool ApproxFunc = false;
+  bool SignedZeros = true;
 
   if (const Arg *A = Args.getLastArg(options::OPT_ffp_contract)) {
     const StringRef Val = A->getValue();
@@ -129,6 +130,12 @@
     case options::OPT_fno_approx_func:
       ApproxFunc = false;
       break;
+    case options::OPT_fsigned_zeros:
+      SignedZeros = true;
+      break;
+    case options::OPT_fno_signed_zeros:
+      SignedZeros = false;
+      break;
     }
 
     // If we handled this option claim it
@@ -146,6 +153,9 @@
 
   if (ApproxFunc)
     CmdArgs.push_back("-fapprox-func");
+
+  if (!SignedZeros)
+    CmdArgs.push_back("-fno-signed-zeros");
 }
 
 void Flang::ConstructJob(Compilation &C, const JobAction &JA,