diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8ae7f780dbf5fea190b370a4753e0a3c6f090816..f799f7dc58865dc62665f1d9856fe988c955b2a3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2005-05-19  Richard Henderson  <rth@redhat.com>
+
+	* unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
+
 2005-05-19  Richard Henderson  <rth@redhat.com>
 
 	* config/i386/sse.md (mulv4si3): Use all register inputs.
diff --git a/gcc/unwind-pe.h b/gcc/unwind-pe.h
index ce7d6943c0a3734724280efa40f9dd2d10e46c6c..398165749a5fd2e1cb9ca54a5f556f2d922004c3 100644
--- a/gcc/unwind-pe.h
+++ b/gcc/unwind-pe.h
@@ -34,6 +34,13 @@
 #ifndef GCC_UNWIND_PE_H
 #define GCC_UNWIND_PE_H
 
+/* If using C++, references to abort have to be qualified with std::.  */
+#if __cplusplus
+#define __gxx_abort std::abort
+#else
+#define __gxx_abort abort
+#endif
+
 /* Pointer encodings, from dwarf2.h.  */
 #define DW_EH_PE_absptr         0x00
 #define DW_EH_PE_omit           0xff
@@ -79,9 +86,8 @@ size_of_encoded_value (unsigned char encoding)
       return 4;
     case DW_EH_PE_udata8:
       return 8;
-    default:
-      gcc_unreachable ();
     }
+  __gxx_abort ();
 }
 
 #endif
@@ -112,9 +118,8 @@ base_of_encoded_value (unsigned char encoding, struct _Unwind_Context *context)
       return _Unwind_GetDataRelBase (context);
     case DW_EH_PE_funcrel:
       return _Unwind_GetRegionStart (context);
-    default:
-      gcc_unreachable ();
     }
+  __gxx_abort ();
 }
 
 #endif
@@ -251,7 +256,7 @@ read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base,
 	  break;
 
 	default:
-	  gcc_unreachable ();
+	  __gxx_abort ();
 	}
 
       if (result != 0)
diff --git a/gcc/unwind.h b/gcc/unwind.h
index 978b9f09c5e6327db11a10e12f83416ed2042ab5..7244fd457c78280a0e0b6b3817d6d9bd09bc3b16 100644
--- a/gcc/unwind.h
+++ b/gcc/unwind.h
@@ -214,7 +214,8 @@ _Unwind_GetDataRelBase (struct _Unwind_Context *_C)
 static inline _Unwind_Ptr
 _Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
 {
-  gcc_unreachable ();
+  abort ();
+  return 0;
 }
 
 /* @@@ Retrieve the Backing Store Pointer of the given context.  */