On Wed, Sep 30, 2015 at 07:10:11PM +0200, Marek Polacek wrote: > On Wed, Sep 30, 2015 at 11:01:14AM -0600, Jeff Law wrote: > > On 09/30/2015 06:45 AM, Marek Polacek wrote: > > >On Wed, Sep 30, 2015 at 02:41:36PM +0200, Bernd Schmidt wrote: > > >>On 09/29/2015 11:49 PM, Jeff Law wrote: > > >>> > > >>>This code from builtins.c: > > >>> > > >>> /* If we don't need too much alignment, we'll have been guaranteed > > >>> proper alignment by get_trampoline_type. */ > > >>> if (TRAMPOLINE_ALIGNMENT <= STACK_BOUNDARY) > > >>> return tramp; > > >>> > > >>> > > >>>It's entirely conceivable that TRAMPOLINE_ALIGNMENT will be the same as > > >>>STACK_BOUNDARY. And if they are, then -Wtautological-compare will > > >>>complain bitterly. > > >> > > >>Eww. Can we fix the warning not to complain when the comparison involves > > >>macros? > > > > > >It already has > > > > > > /* Don't warn for various macro expansions. */ > > > if (from_macro_expansion_at (loc) > > > || from_macro_expansion_at (EXPR_LOCATION (lhs)) > > > || from_macro_expansion_at (EXPR_LOCATION (rhs))) > > > return; > > > > > >and also > > > > > > /* We do not warn for constants because they are typical of macro > > > expansions that test for features, sizeof, and similar. */ > > > if (CONSTANT_CLASS_P (lhs) || CONSTANT_CLASS_P (rhs)) > > > return; > > > > > >so why does it warn? :( > > If you want to dive into it, be my guest :-0 Attached is a suitable .ii > > file. > > All right, let me take a look.
The problem here is that COND_EXPR in cc1plus don't have a location. I've opened <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67863> to track this. Marek