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/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index c77dfa6..b3e7213 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -751,6 +751,12 @@
     llvm::Function *Fn = cast<llvm::Function>(Entry);    
     CodeGenFunction(*this).GenerateCode(D, Fn);
 
+    // Set attributes specific to definition. 
+    // FIXME: This needs to be cleaned up by clearly emitting the
+    // declaration / definition at separate times.
+    if (!Features.Exceptions)
+      Fn->addParamAttr(0, llvm::ParamAttr::NoUnwind);  
+
     if (const ConstructorAttr *CA = D->getAttr<ConstructorAttr>()) {
       AddGlobalCtor(Fn, CA->getPriority());
     } else if (const DestructorAttr *DA = D->getAttr<DestructorAttr>()) {