public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* parameter attributes placement
@ 2001-10-08  8:27 Didier Verna
  0 siblings, 0 replies; only message in thread
From: Didier Verna @ 2001-10-08  8:27 UTC (permalink / raw)
  To: Gcc List

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1148 bytes --]

               Hi again.

        Here's another weirdness with attribute placement: if you want to
declare that a function parameter is meant to be possibly unused, you do that
in the function definition. Fine. However, consider the following piece of
code:

 ,----
| void foo (int i __attribute__ ((__unused__)));
| 
| /* ... */
| 
| void foo (int i)
| {
| }
| 
| int main (int argc, char *argv[])
| {
|   foo (2);
| 
|   return 0;
| }
`-----

        Several misbehaviors (IMHO) occur:

- gcc doesn't signal that the attribute is not placed where it should be. It
  silently accepts the prototype (consider the preceding case (with function):
  you got a parse error in the equivalent situation.

- gcc forgets about the prototype, and you get the unexpected warning about an
  unused parameter in the function definition. It would be better to remember
  the attribute, or at least, to signal a prototype mismatch.

Comments ?


-- 
Didier Verna, didier@lrde.epita.fr, http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire   Tel.+33 (1) 53 14 59 47
94276 Le Kremlin-Bicêtre, France   Fax.+33 (1) 44 08 01 99   didier@xemacs.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-10-08  8:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-08  8:27 parameter attributes placement Didier Verna

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).