c/8294: Support another archetype in "format" function attribute

patdoyle@ca.ibm.com patdoyle@ca.ibm.com
Sun Oct 20 14:16:00 GMT 2002


>Number:         8294
>Category:       c
>Synopsis:       Support another archetype in "format" function attribute
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 20 14:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     patdoyle@ca.ibm.com
>Release:        unknown-1.0
>Organization:
>Environment:

>Description:
A common way to write vararg functions is to have the function take a count of the number of arguments that follow.  (Let's call this, say, the "enumerated" format, just so I can refer to it below.)  It would be nice if calls to this kind of function were checked by gcc to have the right number of arguments.  This could be a variant of the "format" attribute, like the following:

  void foo(int arg_count, ...)
    __attribute__ ((format (enumerated(arg_count))));

In fact, even better would be if one could specify any linear function; for example, if the number of arguments should be 2*arg_count+1, then perhaps it could be declared like so:

  void foo(int arg_count, ...)
    __attribute__ ((format (enumerated(arg_count, 2, 1))));

This would enable it to handle cases I have seen that do data base queries, where the number of key-value pairs is passed:

   result_t query(char *table_name, int key_count, ...)
     __attribute__ ((format(enumerated(key_count, 2, 0))));

I hope this is the right forum for this kind of feature request.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list