On 1 December 2015 at 15:52, Janne Blomqvist <blomqvist.ja...@gmail.com> wrote: > On Tue, Dec 1, 2015 at 2:54 PM, Bernhard Reutner-Fischer > <rep.dot....@gmail.com> wrote: >> These three function used a hardcoded buffer of 100 but would be better >> off to base off GFC_MAX_SYMBOL_LEN which denotes the maximum length of a >> name in any of our supported standards (63 as of f2003 ff.). > > Please use xasprintf() instead (and free the result, or course). One > of my backburner projects is to get rid of these static symbol > buffers, and use dynamic buffers (or the symbol table) instead. We > IIRC already have some ugly hacks by using hashing to get around > GFC_MAX_SYMBOL_LEN when handling mangled symbols. Your patch doesn't > make the situation worse per se, but if you're going to fix it, lets > do it properly.
I see. /scratch/src/gcc-6.0.mine/gcc/fortran$ git grep "^[[:space:]]*char[[:space:]][[:space:]]*[^[;[:space:]]*\[" | wc -l 142 /scratch/src/gcc-6.0.mine/gcc/fortran$ git grep "xasprintf" | wc -l 32 What about memory fragmentation when switching to heap-based allocation? Or is there consensus that these are in the noise compared to other parts of the compiler? BTW: $ git grep APO io.c: static const char *delim[] = { "APOSTROPHE", "QUOTE", "NONE", NULL }; io.c: static const char *delim[] = { "APOSTROPHE", "QUOTE", "NONE", NULL }; > Ok for GCC 7 stage1 with these changes. I don't think it's worth > putting it into GCC 6 at this point anymore, unless this is actually > fixing some bugs that are visible to users? Not visible, no, can wait easily.