[freetds] __func__ vs. __FUNCTION__

James K. Lowden jklowden at schemamania.org
Mon Oct 27 03:43:57 EST 2003


On Sun, 26 Oct 2003 17:46:58 -0600, "Craig A. Berry" <craigberry at mac.com>
wrote:
> A recent change to src/dblib/bcp.c introduces use of the __FUNCTION__ 
> macro.  

Recent is right.  This weekend.  Boy, that didn't last long.  Sorry to
trip you up with that, Craig.

__FUNCTION__ or __func__, we'll have to tolerate compilers that don't have
them.  Maybe something like:

#ifndef __func__
# ifdef __FUNCTION__
#  define __func__  __FUNCTION__
# else
#  define __func__  __FILE__
# endif
#endif

That would give some information, at least.  

--jkl

> Apparently this macro is gcc-specific.  It is unavailable in 
> the vendor-supplied compiler for OpenVMS (and very likely Tru64, 
> which has essentially the same compiler).  C99 makes no mention of 
> __FUNCTION__ that I can find, but it does define the __func__ 
> identifier in section 6.4.2.2.  Something like the following is 
> probably in order:
> 
> --- bcp.c;-0    Sat Oct 25 00:09:08 2003
> +++ bcp.c       Sun Oct 26 18:23:13 2003
> @@ -919,7 +919,7 @@
> 
>                         if (file_bytes_left != 0) {
>                                 tdsdump_log(TDS_DBG_FUNC, "Error in %s,
>                                 col %d: %d of %d bytes unread\n",
> -                                                       __FUNCTION__,
> (i+1), file_bytes_left, collen);+                                       
>                __func__, (i+1), file_bytes_left, collen);
>                                 *row_error = TRUE;
>                                 free(coldata);
>                                 return FAIL;
> [end]
> -- 


More information about the FreeTDS mailing list