[llvm] r207452 - Add (...) around && clause to appeace gcc 4.8's warning

Eli Bendersky eliben at google.com
Mon Apr 28 16:40:53 PDT 2014


On Mon, Apr 28, 2014 at 4:22 PM, Richard Smith <richard at metafoo.co.uk>wrote:

> On Mon, Apr 28, 2014 at 4:13 PM, Eli Bendersky <eliben at google.com> wrote:
>
>> On Mon, Apr 28, 2014 at 4:06 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>>
>>> On Mon, Apr 28, 2014 at 3:32 PM, Eli Bendersky <eliben at google.com>wrote:
>>>>
>>>> On Mon, Apr 28, 2014 at 3:28 PM, Eric Christopher <echristo at gmail.com>wrote:
>>>>
>>>>> Uh, that'd be the wrong grouping I imagine?
>>>>>
>>>>
>>>> Good catch, will fix. The original was wrong too, so the gcc warning
>>>> was spot on here ;-)
>>>>
>>>
>>> Actually, the code is correct either way. Clang has special case
>>> handling to avoid the false positive for this pattern. =)
>>>
>>
>> Interesting. Can you elaborate (or point to this special case in Clang's
>> sources)?
>>
>
> Look at SemaChecking.cpp, around line 6156. In particular, we don't warn
> on:
>
> assert(A || B && "string literal");
>
> ... because (a) this is a common pattern, and (b) the precedence of || and
> && doesn't matter here because && "string literal" is a no-op.
>
>

Thanks for the pointer!



>
>>
>>>
>>> Eli
>>>>
>>>>
>>>>
>>>>> -eric
>>>>>
>>>>> On Mon, Apr 28, 2014 at 3:19 PM, Eli Bendersky <eliben at google.com>
>>>>> wrote:
>>>>> > Author: eliben
>>>>> > Date: Mon Apr 28 17:19:12 2014
>>>>> > New Revision: 207452
>>>>> >
>>>>> > URL: http://llvm.org/viewvc/llvm-project?rev=207452&view=rev
>>>>> > Log:
>>>>> > Add (...) around && clause to appeace gcc 4.8's warning
>>>>> >
>>>>> > Modified:
>>>>> >     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>>>>> >
>>>>> > Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>>>>> > URL:
>>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=207452&r1=207451&r2=207452&view=diff
>>>>> >
>>>>> ==============================================================================
>>>>> > --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
>>>>> > +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Mon Apr 28
>>>>> 17:19:12 2014
>>>>> > @@ -591,9 +591,9 @@ std::unique_ptr<DIE> DwarfDebug::constru
>>>>> >    DIScope DS(Scope->getScopeNode());
>>>>> >
>>>>> >    assert(Scope->getInlinedAt() ||
>>>>> > -         !DS.isSubprogram() && "Only handle inlined subprograms
>>>>> here, use "
>>>>> > -                               "constructSubprogramScopeDIE for
>>>>> non-inlined "
>>>>> > -                               "subprograms");
>>>>> > +         (!DS.isSubprogram() && "Only handle inlined subprograms
>>>>> here, use "
>>>>> > +                                "constructSubprogramScopeDIE for
>>>>> non-inlined "
>>>>> > +                                "subprograms"));
>>>>> >
>>>>> >    SmallVector<std::unique_ptr<DIE>, 8> Children;
>>>>> >
>>>>> >
>>>>> >
>>>>> > _______________________________________________
>>>>> > llvm-commits mailing list
>>>>> > llvm-commits at cs.uiuc.edu
>>>>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140428/05df10d6/attachment.html>


More information about the llvm-commits mailing list