https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94505

            Bug ID: 94505
           Summary: Logical operator inside fold-expression: strange
                    warning
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: frank.winklmeier at cern dot ch
  Target Milestone: ---

This was first reported in [1] but I could not find any bug report. The
following code compiled with `gcc -Wall -std=c++17`:

template <bool... B>
bool foo () {
    return ((B && true) || ...);
}

int main () {
    foo<true, false, false, true> ();
} 

produces this warning:

t.cxx:7:38:   required from here
t.cxx:3:18: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]
       return ((B && true) || ...);
               ~~~^~~~~~~~
t.cxx:3:18: warning: suggest parentheses around '&&' within '||'
[-Wparentheses]

Reproducible with any recent gcc version including gcc-trunk-20200406 (on
godbolt).


[1]
http://gcc.1065356.n8.nabble.com/Logical-operator-inside-fold-expression-strange-warning-td1627740.html

Reply via email to