public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/100828] New: Arbitrary limit on constraint complexity
@ 2021-05-30  0:15 matthewjbarichello at gmail dot com
  2021-07-19 18:56 ` [Bug c++/100828] " ppalka at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: matthewjbarichello at gmail dot com @ 2021-05-30  0:15 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 100828
           Summary: Arbitrary limit on constraint complexity
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matthewjbarichello at gmail dot com
  Target Milestone: ---

Created attachment 50889
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50889&action=edit
Patch to remove the constraint complexity limit from gcc-11.1.0

It would seem that there is an arbitrary limit on the complexity of constraints
in gcc 11.

    #define a (0 || 0 && 0)

    namespace e {
     template<typename>
     struct f;
    }
    template<typename g>
    concept f = e::f<g>::h && true && a;

    template<typename>
    concept i = a && a;

    template <typename, typename j>
    requires(i<j> || f<j>)
    struct k;

    template<typename g, typename j>
    requires(i<j> && i<g>)
    struct k<g, j>;

This example, reduced with c-reduce, yields:

    <source>:19:8: error: ‘0 \/ 0 /\ 0 /\ 0 \/ 0 /\ 0 \/ e::f<
<template-parameter-1-1> >::h [with g = j] /\ true /\ 0 \/ 0 /\ 0’ exceeds the
maximum constraint complexity
       19 | struct k<g, j>;
          |        ^~~~~~~

Attached is a patch for gcc, as of the releases/gcc-11.1.0 tag, which allows
gcc to compile the example without an issue.

Clang does not seem to have this limitation and has no problem compiling the
example. Is there a reason for this limit?

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

end of thread, other threads:[~2021-08-11 15:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-30  0:15 [Bug c++/100828] New: Arbitrary limit on constraint complexity matthewjbarichello at gmail dot com
2021-07-19 18:56 ` [Bug c++/100828] " ppalka at gcc dot gnu.org
2021-07-28  7:07 ` rguenth at gcc dot gnu.org
2021-08-02 14:05 ` cvs-commit at gcc dot gnu.org
2021-08-11 15:55 ` cvs-commit at gcc dot gnu.org
2021-08-11 15:59 ` ppalka 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).