Add -fexceptions to Driver
 - Maps to LangOptions.Exceptions
 - Currently always off, should autoselect based on language.

Update CodeGen to set unwind attribute on functions definitions based
       on LangOptions.Exceptions.
 - Still need to set attributes appropriately on calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54643 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 05befe0..c55aa17 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -362,6 +362,17 @@
                                     " with a different number of elements or "
                                     "different element types"));
 
+// FIXME: This (and all GCC -f options) really come in -f... and
+// -fno-... forms, and additionally support automagic behavior when
+// they are not defined. For example, -fexceptions defaults to on or
+// off depending on the language. We should support this behavior in
+// some form (perhaps just add a facility for distinguishing when an
+// has its default value from when it has been set to its default
+// value).
+static llvm::cl::opt<bool>
+Exceptions("fexceptions",
+           llvm::cl::desc("Enable support for exception handling."));
+
 // FIXME: add:
 //   -ansi
 //   -trigraphs
@@ -427,6 +438,7 @@
   Options.Microsoft = MSExtensions;
   Options.WritableStrings = WritableStrings;
   Options.LaxVectorConversions = LaxVectorConversions;
+  Options.Exceptions = Exceptions;
 }
 
 static llvm::cl::opt<bool>