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

            Bug ID: 91632
           Summary: [10 Regression] Probably wrong code since r275026
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Since the revision, I see postgres11 teste-suite failing. There's a reduced
test-case:

$ cat url.c
static int
__attribute__((noipa))
p_isurlchar(char ch)
{
        if (ch <= 0x20 || ch >= 0x7F)
                return 0;
        /* reject characters disallowed by RFC 3986 */
        switch (ch)
        {
                case '"':
                case '<':
                case '>':
                case '\\':
                case '^':
                case '`':
                case '{':
                case '|':
                case '}':
                        return 0;
        }
        return 1;
}

int main()
{
  const char *url = "http://aew.werc.ewr/?ad=qwe&dw";;
  int r = p_isurlchar (url[0]);
  __builtin_printf ("is_url: '%c': %d\n", url[0], r);
  if (r == 0)
    __builtin_abort ();

  return 0;
}

$ gcc /tmp/url.c -O2 -fwrapv && ./a.out
is_url: 'h': 0
Aborted (core dumped)

$ gcc /tmp/url.c -fwrapv && ./a.out
is_url: 'h': 1

Reply via email to