i'm just noticing it now, but all my code that used __FUNCTION__ do not compile anymore.
it seems the definition of __FUNCTION__ have been quite broken between 8.1 and 8.5:
- we now have to use a specific pragma (iso_9899_1999) to use this identifier that we had not to use previously. existing code that used this feature has to be changed.
(by the way, this pragma is not mentionned in the documentation. is my documentation broken ?)
- __FUNCTION__ was previously a macro, so it could be concatenated to a string, this way:
printf( "i am talking from function " __FUNCTION__ " and it works" ).
Now, it seems it is declared as a
const char, so the use above is prohibited.
- also, since __FUNCTION__ is something like a special identifier, it cannot be undefined in any case nor can it be redefined, regardless of the use of the aforementioned pragma.
now that i switched to 8.5, i have to rewrite big parts of my applications to be able to compile it again.
i do appreciate the effort made to integrate C99 features into CVI, but this change is radically not backward compatible and breaks a lot of existing code. so, is there a way to get the old behavior when not using the C99 pragma ?