Re: CLANG versus GCC question: compiling non-c99 code with CLANG

看板FB_current作者時間13年前 (2012/09/24 18:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
On 2012-09-24 11:36, O. Hartmann wrote: > I have a problem and I guess there is a simple solution - at least, I hope. > > I try to compile a "in spe" port which contains some C code that is > definitely Kernighan & Ritchie standard like: > > -- > my_func(win) > Window win; > { > [...] > if ( current->win.data == (lux_data *)NULL ) return; > [...] > } > -- > > There is no declaration of the return type of the function, I guess it > is implicitely void in older standards, but is treated as non void > function in CLANG - and there the error comes in. Declarations with no type default to int, the infamous "implicit int" rule, which apparently is very hard to get rid of. :) I'm not even sure the committees managed to ditch it in C11... In any case, in very old C, the 'void' type did not exist; you simply ignored the return value of such a function. > I can compile the code without any problems with GCC 4.6 - without any > change of compiling standard or anything like that, it simply compiles. > > I tried to apply "CFLAGS+= -std=[c89|gnu89]" when compiling with CLANG > since GCC defaults to gnu89 while CLANG defaults to c99 standard, but > this didn't help. Unfortunately you did not post the actual error message. What was it? _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
文章代碼(AID): #1GO2zV29 (FB_current)
文章代碼(AID): #1GO2zV29 (FB_current)