public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug preprocessor/95889] New: corrupt size vs. prev_size and hang when using __has_include with -traditional-cpp
@ 2020-06-25  7:06 dev-zero at gentoo dot org
  2020-06-25  7:22 ` [Bug preprocessor/95889] " dev-zero at gentoo dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: dev-zero at gentoo dot org @ 2020-06-25  7:06 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 95889
           Summary: corrupt size vs. prev_size and hang when using
                    __has_include with -traditional-cpp
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: preprocessor
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dev-zero at gentoo dot org
  Target Milestone: ---

Part of my testing for issues like https://github.com/evaleev/libint/issues/173
with GCC 10.1 I came up with a silly test header:

****snip****
#if defined __has_include
#  if __has_include(<stdio.h>)
hello there
#  endif
#endif
****snip****

which works as expected with `cpp test.h`:

****snip****
# 1 "test.h"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "<command-line>" 2
# 1 "test.h"



hello there
****snip****

But gives the following and hangs when running with `cpp -traditional-cpp
test.h`:

****snip****
# 1 "test.h"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4

# 17 "/usr/include/stdc-predef.h" 3 4

[...]

# 32 "<command-line>" 2
# 1 "test.h"
test.h:3: error: missing '(' before "__has_include" operand
    3 | #  if __has_include(<stdio.h>)
      | 
test.h:3: error: operator "__has_include" requires a header-name
test.h:3: warning: null character(s) ignored
test.h:3: error: missing binary operator before token "q"
*** Error in
`/data/tiziano/cp2k/tools/toolchain/install/gcc-10.1.0/lib/gcc/x86_64-pc-linux-gnu/10.1.0/cc1':
corrupted size vs. prev_size: 0x0000000002a517a0 ***
test.h:1: confused by earlier errors, bailing out
****snip****

Besides this issue with the compiler itself, I wonder what the correct
invocation of `__has_include` in traditional mode is (because it seems to be
defined).

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

end of thread, other threads:[~2020-07-29 15:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-25  7:06 [Bug preprocessor/95889] New: corrupt size vs. prev_size and hang when using __has_include with -traditional-cpp dev-zero at gentoo dot org
2020-06-25  7:22 ` [Bug preprocessor/95889] " dev-zero at gentoo dot org
2020-07-24 10:34 ` [Bug preprocessor/95889] __has_include evaluated even if disabled (with cpp in traditional-mode) dev-zero at gentoo dot org
2020-07-28  7:56 ` tm@dev-zero.ch
2020-07-29  8:13 ` [Bug preprocessor/95889] [10 regression] __has_include broken with -traditional-cpp (and therefore with Fortran) tm@dev-zero.ch
2020-07-29 12:53 ` nathan at gcc dot gnu.org
2020-07-29 15:01 ` nathan 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).