[Bug objc/66367] New: Objective-C Variadic Method Not Working

2015-06-01 Thread chrisloonam at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66367

Bug ID: 66367
   Summary: Objective-C Variadic Method Not Working
   Product: gcc
   Version: 5.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: objc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chrisloonam at gmail dot com
  Target Milestone: ---

Created attachment 35671
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35671&action=edit
The source file that is generating the error, pre-compiled with gcc -save-temps

This error is being experienced on GCC 5.1.0 on an Arch Linux system. 

When making a variadic method like the following

- (void)method:(id)o, ...
{
int c = 1;
va_list list;
va_start(list, o);
while (va_arg(list, id))
c++;
va_end(list);
}
the compiler reports the following error

error: expected expression before ‘id’
If `id` is replaced with `void *`, the same error occurs.

Attached is the pre-compiled source of the file where you can find this code.
The file succssfully compiles in clang, leading me to believe that this is in
fact a bug and not a programmer error.

[Bug objc/66367] Objective-C Variadic Method Not Compiling

2015-06-01 Thread chrisloonam at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66367

--- Comment #2 from Chris Loonam  ---
I think that being able to use `id` as an argument to va_arg is the expected
behavior, not an extension provided by the compiler.