Hello,
Re-sending patch sent in Feb.
Perhaps, it has been missed.

Compilation by recent clang++ on Mac (Apple LLVM version 7.0.2
(clang-700.1.81)) is broken.

It complain on 3 issues with templates like failing to void-reference
instantiation, and 2 issues in in visibility of resolving.

There's one more issue at the linking step.

The patch is attached and inlined.

Thank you so much for the great aspell!

Best.

Hypo


diff -Naru aspell-0.61/common/hash.hpp
aspell-0.61-mac-patched/common/hash.hpp
--- aspell-0.61/common/hash.hpp    2016-02-22 14:58:15.000000000 +0200
+++ aspell-0.61-mac-patched/common/hash.hpp    2016-02-22
17:02:55.000000000 +0200
@@ -324,7 +324,7 @@
       : Base(s, Parms(h,e)) {}
     data_type & operator[](const key_type & k)
     {
-      return (*((insert(value_type(k, data_type()))).first)).second;
+      return (*((this->insert(value_type(k, data_type()))).first)).second;
     }
   };

diff -Naru aspell-0.61/common/posib_err.hpp
aspell-0.61-mac-patched/common/posib_err.hpp
--- aspell-0.61/common/posib_err.hpp    2005-05-03 08:08:19.000000000 +0300
+++ aspell-0.61-mac-patched/common/posib_err.hpp    2016-02-22
17:02:42.000000000 +0200
@@ -158,6 +158,9 @@
     void del();
   };

+  template <typename Ret> class PosibErr;
+  template <> class PosibErr<void>;
+
   template <typename Ret>
   class PosibErr : public PosibErrBase
   {
@@ -171,8 +174,8 @@
     PosibErr(const PosibErr<T> & other)
       : PosibErrBase(other), data(other.data) {}

-    PosibErr(const PosibErr<void> & other)
-      : PosibErrBase(other) {}
+    PosibErr(const PosibErr<void> & other);
+      //: PosibErrBase(other) {}

     PosibErr& operator= (const PosibErr & other) {
       data = other.data;
@@ -186,6 +189,7 @@
     Ret data;
   };

+
   template <>
   class PosibErr<void> : public PosibErrBase
   {
@@ -196,6 +200,10 @@
     PosibErr() {}
   };

+  template <typename Ret>
+  PosibErr<Ret>::PosibErr(const PosibErr<void> & other) :
PosibErrBase(other) {}
+
+
 //
 //
 //
diff -Naru aspell-0.61/common/vector.hpp
aspell-0.61-mac-patched/common/vector.hpp
--- aspell-0.61/common/vector.hpp    2006-11-24 16:36:50.000000000 +0200
+++ aspell-0.61-mac-patched/common/vector.hpp    2016-02-22
17:02:49.000000000 +0200
@@ -35,7 +35,7 @@
       this->push_back(t);
     }
     void append(const T * begin, unsigned int size) {
-      insert(this->end(), begin, begin+size);
+      this->insert(this->end(), begin, begin+size);
     }
     void append(const T * begin, const T * end) {
       insert(this->end(), begin, end);
diff -Naru aspell-0.61/interfaces/cc/aspell.h
aspell-0.61-mac-patched/interfaces/cc/aspell.h
--- aspell-0.61/interfaces/cc/aspell.h    2016-02-22 14:56:26.000000000
+0200
+++ aspell-0.61-mac-patched/interfaces/cc/aspell.h    2016-02-22
17:03:18.000000000 +0200
@@ -237,7 +237,7 @@

 /******************************** errors ********************************/

-
+#ifndef __cplusplus
 extern const struct AspellErrorInfo * const aerror_other;
 extern const struct AspellErrorInfo * const aerror_operation_not_supported;
 extern const struct AspellErrorInfo * const   aerror_cant_copy;
@@ -328,6 +328,7 @@
 extern const struct AspellErrorInfo * const   aerror_invalid_expression;
 extern const struct AspellErrorInfo * const aerror_convert_filter;
 extern const struct AspellErrorInfo * const   aerror_invalid_table_entry;
+#endif


 /****************************** check info ******************************/

Attachment: aspell-clang.patch
Description: Binary data

_______________________________________________
Aspell-devel mailing list
Aspell-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/aspell-devel

Reply via email to