diff options
| author | Even Rouault <even.rouault@mines-paris.org> | 2018-08-11 11:34:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-11 11:34:36 +0200 |
| commit | 0ee56a0de9d8708974fd854ff091e11c844df9d9 (patch) | |
| tree | 35eafecc76d4cf06aa6017db14e7124774889dae | |
| parent | 7b7e69690d13bd5d6b6468c6a11a81f871bd7127 (diff) | |
| parent | 143b4d3f64e0828a3b03dd9ed997dd5412c2b25a (diff) | |
| download | PROJ-0ee56a0de9d8708974fd854ff091e11c844df9d9.tar.gz PROJ-0ee56a0de9d8708974fd854ff091e11c844df9d9.zip | |
Merge pull request #1087 from rouault/gcc_8_fix
Fix wrong behaviour of torad_coord() with gcc 8.1 -O2 (fixes #1084)
| -rw-r--r-- | src/pj_param.c | 2 | ||||
| -rw-r--r-- | src/projects.h | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/pj_param.c b/src/pj_param.c index 6cee4d1f..7ed0e377 100644 --- a/src/pj_param.c +++ b/src/pj_param.c @@ -42,7 +42,7 @@ paralist *pj_mkparam_ws (char *str) { } /* Use calloc to automagically 0-terminate the copy */ - newitem = (paralist *) pj_calloc (1, sizeof(paralist) + len); + newitem = (paralist *) pj_calloc (1, sizeof(paralist) + len + 1); if (0==newitem) return 0; memmove(newitem->param, str, len); diff --git a/src/projects.h b/src/projects.h index 2dc073fa..928985f6 100644 --- a/src/projects.h +++ b/src/projects.h @@ -458,7 +458,12 @@ struct PJconsts { struct ARG_list { paralist *next; char used; - char param[1]; +#ifdef __GNUC__ + char param[0]; /* variable-length member */ + /* Safer to use [0] for gcc. See https://github.com/OSGeo/proj.4/pull/1087 */ +#else + char param[1]; /* variable-length member */ +#endif }; |
