In this test case:

int fn () __attribute__ ((warn_unused_result));
int
foo ()
{
  if (fn () < 0)
    return -1;
  (void) fn ();
  return 0;
}

 $ gcc -S -Wall ~/p.c
/home/aph/p.c: In function 'foo':
/home/aph/p.c:5: warning: ignoring return value of 'fn', declared with 
attribute warn_unused_result

Is this correct?  The result is not unused, but cast to void.

Andrew.

Reply via email to