Steven,
As Martin mentioned, the __FUNCTION__ macro is not part of the ANSI C 89 standard. It is part of the C99 standard, and CVI isn't C99-compatible. What happened in 8.5 was that a handful of the features that comprise the C99 standard were added (note: for those of you who have shown interest in C99 and CVI, please be aware that CVI 8.5 is nevertheless still not C99-compatible).
Because code that uses C99 features might not be compatible with other C compilers, in order to use any of the C99-specific features of CVI 8.5, you will have to add a new pragma to your code:
#pragma iso_9899_1999
Since __FUNCTION__ is really a C99 feature, it is now also grouped with the other features that require the use of this pragma. Actually, to be more precise, the C99 standard calls for "__func__", not "__FUNCTION__". But both should work in CVI 8.5. So, to answer your question directly, yes you can continue to use __FUNCTION__ but you'll have a line with this pragma somewhere above the use of the macro.
In case anyone is interested, these are the other features that are present in CVI 8.5, the use of which is governed by this pragma:
1. Declaring variables in the middle of a block. For example:
{
int i = 1;
printf ("%d", i);
int j = 2;
printf ("%d", j);
for (int k = 0; k < i + j; ++k)
printf ("%d", k); /* k is out-of-scope after the for-loop */
printf ("%d", i + j);
}
2. Macros with variable arguments. For example:
#define debug_printf(format,...) fprintf (stderr, format, __VA_ARGS__);
3. Allocating memory on the stack (alloca call).
4. Support for the long long data type (this is functionally identical to the already existing __int64), and its associated functions (strtoll, lldiv, etc...)
Luis