$ svn merge -c 85649 https://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk
--- Merging r85649 into '.':
U    gcc/cp/decl.c

llvm-svn: 85650
diff --git a/llvm-gcc-4.2/gcc/cp/decl.c b/llvm-gcc-4.2/gcc/cp/decl.c
index 44368f1..8c05bc9 100644
--- a/llvm-gcc-4.2/gcc/cp/decl.c
+++ b/llvm-gcc-4.2/gcc/cp/decl.c
@@ -12102,7 +12102,18 @@
       && !cp_function_chain->can_throw
       && !flag_non_call_exceptions
       && !DECL_REPLACEABLE_P (fndecl))
-    TREE_NOTHROW (fndecl) = 1;
+    /* LLVM LOCAL begin - set nothrow for thunks to what it is for the
+       function that they're thunking.  */
+    {
+#ifdef ENABLE_LLVM
+      if (DECL_THUNK_P (fndecl))
+        TREE_NOTHROW (fndecl) = TREE_NOTHROW (THUNK_TARGET (fndecl));
+      else
+#endif
+        TREE_NOTHROW (fndecl) = 1;
+    }
+    /* LLVM LOCAL end - set nothrow for thunks to what it is for the
+       function that they're thunking.  */
 
   /* This must come after expand_function_end because cleanups might
      have declarations (from inline functions) that need to go into