This is a bug in 4.2BSD "lint". The UNIX System V "lint" is happy with your example (except for function returns value which is always ignored printf ).