blob: e6d284d2c5f9ce2923fec1b2ab6cdac5da93ba32 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-Wpedantic" } */
/* Test we're printing the types, like the good compiler we are. */
extern void foo2 (int *); /* { dg-message "expected 'int \\*' but argument is of type 'int'" } */
extern void foo3 (int); /* { dg-message "expected 'int' but argument is of type 'int \\*'" } */
int *
fn1 (int *p)
{
p = 1; /* { dg-error "assignment to 'int \\*' from 'int' makes pointer from integer without a cast" } */
int *q = 1; /* { dg-error "initialization of 'int \\*' from 'int' makes pointer from integer without a cast" } */
foo2 (1); /* { dg-error "passing argument 1 of 'foo2' makes pointer from integer without a cast" } */
return 1; /* { dg-error "returning 'int' from a function with return type 'int \\*' makes pointer from integer without a cast" } */
}
int
fn2 (int i, int *p)
{
i = p; /* { dg-error "assignment to 'int' from 'int \\*' makes integer from pointer without a cast" } */
int j = p; /* { dg-error "initialization of 'int' from 'int \\*' makes integer from pointer without a cast" } */
foo3 (p); /* { dg-error "passing argument 1 of 'foo3' makes integer from pointer without a cast" } */
return p; /* { dg-error "returning 'int \\*' from a function with return type 'int' makes integer from pointer without a cast" } */
}