>>! In D5480#13, @majnemer wrote:
> Perhaps a warning should be added so code doesn't "miscompile" when compiled 
> with GCC?

I don't think the warning is actionable for the user. How do we avoid false 
positives on printf("%d\n", 0)?

Users are typically saavy enough to know that passing '0' to a varargs function 
will be interpreted as an int, or at least be able to debug the crash once it 
happens. The subtle case is when passing NULL, which 99% of the time just works 
with GCC's stddef.h. In the 1% corner case where NULL is defined incorrectly 
(literal 0 and not 0L), I can live the fact that clang and gcc will have subtle 
behavior differences.

> Is there a reason to restrict this just to null pointer constants?

I don't see why we should implicitly widen all ints to i64 in varargs contexts.

http://reviews.llvm.org/D5480



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to