The following works just fine: extern char *strcpy(); void func() { char *a; a = "x"; (void)strcpy( a, "string" ); } under the UNIX System V "lint". Maybe you have a sick "lint"?