Index: gcc/d/d-longdouble.cc
--- gcc/d/d-longdouble.cc.orig
+++ gcc/d/d-longdouble.cc
@@ -86,6 +86,18 @@ longdouble::set (uint64_t d)
 		     UNSIGNED);
 }
 
+#if defined(__OpenBSD__) && defined(__LP64__)
+void longdouble::set(long d)
+{
+    set((int64_t)d);
+}
+
+void longdouble::set(unsigned long d)
+{
+    set((uint64_t)d);
+}
+#endif
+
 uint64_t
 longdouble::to_uint (void) const
 {
