public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
To: rocombs@cs.nmsu.edu
Cc: rocombs@cs.nmsu.edu, gcc@gcc.gnu.org
Subject: Re: Compiler Directive to List Defined Macros?
Date: Thu, 29 Jun 2000 13:44:00 -0000	[thread overview]
Message-ID: <200006292011.WAA01207@loewis.home.cs.tu-berlin.de> (raw)
In-Reply-To: <200006291528.JAA27595@quito.cs.nmsu.edu>

> Ah.  But I'm getting version 199409 even though __func__ is defined...
> Was there a C94 standard?  Was C9X released as a standard or is it still
> in development?

No, there was an Amendment 1 to ISO 9899:1989, which was issued in
1994. That said implementations conforming to that ammendment should
define this value. Your implementation probably does not define the
1999 value, as it probably can't claim full conformance, yet. As a
result, you either need to specifically check for the version of the
compiler (as opposed to the version of the language), or just not use
__func__.

Please note that the implementation can rightfully define __func__ and
still claim conformance to C89+Amd1, as that name is in the
implementation-reserved namespace.

> > The proper way of testing for these is to write
> >
> > #ifdef __GNUC__
> >
> > in which case you can use either one.
> 
> So __PRETTY_FUNCTION__ has existed for a long time in gcc?  I can trust
> that even old copies will support this?

Yes. I could check when it was first introduced - but so could you.
Then you could define a reliable test based on the values of __GNUC__
and __GNUC_MINOR__

> In my reply to Geoff I noted one way to make it work.  It isn't needed
> as you point out there are other ways to detect these things.  Is it
> standard to make function names all uppercase though?

Well, these aren't function names, either. __func__ is a variable
name, so C99 followed the typical style for such names. When
__FUNCTION__ was first introduced, it was "magic" - a named string
literal (*). It was the only one of its kind, so it did not have to follow
any convention. Since it was anticipated that it is used together with
__FILE__ and __LINE__, it was given the same appearance.

Regards,
Martin

(*) It still is, and some people claim that __func__ should have been
one of these, also, to allow concatenation as in

  __FILE__ ":" __FUNCTION__

  reply	other threads:[~2000-06-29 13:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-06-29  8:28 Ross Combs
2000-06-29 13:44 ` Martin v. Loewis [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-06-30 14:34 Ross Combs
2000-06-29 15:49 Ross Combs
2000-06-30  1:36 ` Neil Booth
2000-06-29  8:18 Ross Combs
2000-06-29 11:38 ` Geoff Keating
2000-06-28 17:19 Ross Combs
2000-06-28 19:40 ` Geoff Keating
2000-06-29  0:39 ` Martin v. Loewis
2000-06-28  6:44 Bolan Meek
2000-06-28  7:27 ` Franz Sirl
2000-06-28  7:35   ` Bolan Meek
2000-06-28  7:56     ` Alexandre Oliva
2000-06-28  8:06       ` Bolan Meek
2000-06-28  8:14         ` Alexandre Oliva

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200006292011.WAA01207@loewis.home.cs.tu-berlin.de \
    --to=martin@loewis.home.cs.tu-berlin.de \
    --cc=gcc@gcc.gnu.org \
    --cc=rocombs@cs.nmsu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).