From owner-freebsd-ports@FreeBSD.ORG Mon Jun 20 19:28:15 2011 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 198BF106564A; Mon, 20 Jun 2011 19:28:15 +0000 (UTC) (envelope-from cswiger@mac.com) Received: from asmtpout020.mac.com (asmtpout020.mac.com [17.148.16.95]) by mx1.freebsd.org (Postfix) with ESMTP id F067E8FC08; Mon, 20 Jun 2011 19:28:14 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from cswiger1.apple.com ([17.209.4.71]) by asmtp020.mac.com (Oracle Communications Messaging Exchange Server 7u4-20.01 64bit (built Nov 21 2010)) with ESMTPSA id <0LN300H73SQXGP40@asmtp020.mac.com>; Mon, 20 Jun 2011 12:28:10 -0700 (PDT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.4.6813,1.0.148,0.0.0000 definitions=2011-06-20_05:2011-06-20, 2011-06-20, 1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 ipscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx engine=6.0.2-1012030000 definitions=main-1106200180 From: Chuck Swiger In-reply-to: <4DFF9AE3.10609@missouri.edu> Date: Mon, 20 Jun 2011 12:28:09 -0700 Message-id: References: <20110620153753.GA41541@freebsd.org> <4DFF73E3.5010405@gmail.com> <4DFF76C7.5070001@missouri.edu> <432743E3-272A-40F5-AF31-6C1805F620F3@mac.com> <4DFF9AE3.10609@missouri.edu> To: Stephen Montgomery-Smith X-Mailer: Apple Mail (2.1084) Cc: Niclas Zeising , Roman Divacky , "freebsd-ports@freebsd.org" Subject: Re: [ANNOUNCE]: clang compiling ports X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jun 2011 19:28:15 -0000 On Jun 20, 2011, at 12:09 PM, Stephen Montgomery-Smith wrote: >> top_button_cross() probably should be declared as returning void. What's presumably happening is that it gets a default return type of int since it doesn't otherwise specify a return type, and then fails to have an explicit return, which is an error. > > Is a return with no value, from a function of type int, meant to be an error in K&R code? I don't believe so, but pure K&R didn't require compilers to perform any sanity checking of function return types. This led to all sorts of bugs, which is why lint was invented and why ANSI-C compilers do expect function prototypes and perform function return-type checking. > If so, I will change the code so that "return" becomes "return 0". > > Otherwise, I think the clang compiler should be changed so that this is a warning, not an error. Or at least an error that can be switched off with -Wno-return-type. > > I will say that I have no desire to put ansii patches into working K&R code. It sounds like you want Clang to support -traditional. It explicitly does not do so, although there is a bug filed as: http://llvm.org/bugs/show_bug.cgi?id=4557 The best course is to convert K&R C code to C89/ANSI; failing that, perhaps use gcc for things which require -traditional instead of Clang (although GCC seems to be depreciating -traditional also). Regards, -- -Chuck