[ANNOUNCE]: clang compiling ports

Stephen Montgomery-Smith stephen at missouri.edu
Mon Jun 20 21:01:44 UTC 2011


On 06/20/2011 02:44 PM, Stephen Montgomery-Smith wrote:
> On 06/20/2011 02:28 PM, Chuck Swiger wrote:
>> 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).
>
> This is someone else's code in math/xppaut.  I have no desire to write
> extensive patches to his code.  It would be a nightmare to maintain.
>
> I'll go with "return 0".

After all my fussing, I tried clang out, and
-Wno-return-type
kills the error message.

So I am OK.


More information about the freebsd-ports mailing list