From: Christian Kastner <debian@kvr.at>
Date: Thu, 1 Jul 2010 01:02:47 +0200
Subject: [PATCH] Portable handling for va_list

The current code wrongly assumes va_list is always implemented as an array. va_list
however is an opaque type, and may also be implemented as a struct, for
example. This patch implements handling of va_list in a platform-independent
way, fixing a FTBFS on alpha and armel.

Forwarded: no
Last-Update: 2010-07-01
---
 src/include/fann_cpp.h |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/include/fann_cpp.h b/src/include/fann_cpp.h
index eb647af..bf6e75b 100644
--- a/src/include/fann_cpp.h
+++ b/src/include/fann_cpp.h
@@ -916,9 +916,12 @@ public:
         bool create_standard(unsigned int num_layers, ...)
         {
             va_list layers;
+            unsigned int arr[num_layers];
+
             va_start(layers, num_layers);
-            bool status = create_standard_array(num_layers,
-                reinterpret_cast<const unsigned int *>(layers));
+            for (unsigned int ii = 0; ii < num_layers; ii++)
+                arr[ii] = va_arg(layers, unsigned int);
+            bool status = create_standard_array(num_layers, arr);
             va_end(layers);
             return status;
         }
@@ -966,9 +969,12 @@ public:
         bool create_sparse(float connection_rate, unsigned int num_layers, ...)
         {
             va_list layers;
+            unsigned int arr[num_layers];
+
             va_start(layers, num_layers);
-            bool status = create_sparse_array(connection_rate, num_layers,
-                reinterpret_cast<const unsigned int *>(layers));
+            for (unsigned int ii = 0; ii < num_layers; ii++)
+                arr[ii] = va_arg(layers, unsigned int);
+            bool status = create_sparse_array(connection_rate, num_layers, arr);
             va_end(layers);
             return status;
         }
@@ -1013,9 +1019,12 @@ public:
         bool create_shortcut(unsigned int num_layers, ...)
         {
             va_list layers;
+            unsigned int arr[num_layers];
+
             va_start(layers, num_layers);
-            bool status = create_shortcut_array(num_layers,
-                reinterpret_cast<const unsigned int *>(layers));
+            for (unsigned int ii = 0; ii < num_layers; ii++)
+                arr[ii] = va_arg(layers, unsigned int);
+            bool status = create_shortcut_array(num_layers, arr);
             va_end(layers);
             return status;
         }
-- 
