[freetds] __func__ vs. __FUNCTION__

ark at eltex.ru ark at eltex.ru
Mon Oct 27 17:07:44 EST 2003


IIRC, this won't work. __FUNCTION__ is not "real" defined macro and
it cannot be checked by #ifdef, at least gcc manual says so.

On Mon, Oct 27, 2003 at 03:43:57AM -0500, James K. Lowden wrote:
> 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]
> > -- 
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
> 
> 
> This email has been scanned by the ADVASCAN(tm) antivirus / antispam service
> For more information please visit www.advascan.com.
> 
> 



More information about the FreeTDS mailing list