public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/100995] New: Extend std::is_constant_evaluated in if warning
@ 2021-06-09 15:08 mpolacek at gcc dot gnu.org
  2021-06-09 15:09 ` [Bug c++/100995] " mpolacek at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2021-06-09 15:08 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 100995
           Summary: Extend std::is_constant_evaluated in if warning
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mpolacek at gcc dot gnu.org
  Target Milestone: ---

Let's extend the existing warning to detect more cases, as in
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1938r3.html#compiler-warnings

constexpr int f1() {
  if constexpr (!std::is_constant_evaluated() && sizeof(int) == 4) { //
warning: always true
    return 0;
  }
  if (std::is_constant_evaluated()) {
    return 42;
  } else {
    if constexpr (std::is_constant_evaluated()) { // warning: always true
      return 0;
    }
  }
  return 7;
}


consteval int f2() {
  if (std::is_constant_evaluated() && f1()) { // warning: always true
    return 42;
  }
  return 7;
}


int f3() {
  if (std::is_constant_evaluated() && f1()) { // warning: always false
    return 42;
  }
  return 7;
}

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-06-11  2:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-09 15:08 [Bug c++/100995] New: Extend std::is_constant_evaluated in if warning mpolacek at gcc dot gnu.org
2021-06-09 15:09 ` [Bug c++/100995] " mpolacek at gcc dot gnu.org
2021-06-09 16:09 ` jakub at gcc dot gnu.org
2021-06-11  2:32 ` cvs-commit at gcc dot gnu.org
2021-06-11  2:33 ` mpolacek at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).