aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/extern.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/extern.h')
-rw-r--r--src/interfaces/ecpg/ecpglib/extern.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/ecpglib/extern.h b/src/interfaces/ecpg/ecpglib/extern.h
index 8a04ad0aaf1..846e205d281 100644
--- a/src/interfaces/ecpg/ecpglib/extern.h
+++ b/src/interfaces/ecpg/ecpglib/extern.h
@@ -125,7 +125,12 @@ PGresult **ECPGdescriptor_lvalue(int line, const char *descriptor);
bool ECPGstore_result(const PGresult *results, int act_field,
const struct statement * stmt, struct variable * var);
bool ECPGstore_input(const int, const bool, const struct variable *, const char **, bool *);
+#if defined(__GNUC__) && (defined (__powerpc__) || defined(__AMD64__))
+ // work around a gcc/ABI bug with va_lists on ppc+amd64
+void ECPGget_variable(va_list, enum ECPGttype, struct variable *, bool);
+#else
void ECPGget_variable(va_list *, enum ECPGttype, struct variable *, bool);
+#endif
/* SQLSTATE values generated or processed by ecpglib (intentionally
* not exported -- users should refer to the codes directly) */