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

            Bug ID: 125487
           Summary: internal compiler error: in DECL_FUNCTION_CODE, at
                    tree.h:4484 on sizeof ternary involving
                    __builtin_is_constant_evaluated()
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lu.maltsis at postgrad dot manchester.ac.uk
  Target Milestone: ---

```sh
$ gcc /tmp/bug.cpp
/tmp/bug.cpp: In function ‘int main()’:
/tmp/bug.cpp:4:51: internal compiler error: in DECL_FUNCTION_CODE, at
tree.h:4484
    4 |     return sizeof(__builtin_is_constant_evaluated() ? 0 : 0);
      |                                                   ^
0x2925b1b internal_error(char const*, ...)
        /home/user/software/gcc/slot-a/src/gcc/diagnostic-global-context.cc:787
0xac6559 fancy_abort(char const*, int, char const*)
        /home/user/software/gcc/slot-a/src/gcc/diagnostics/context.cc:1813
0x8a4416 DECL_FUNCTION_CODE(tree_node const*)
        /home/user/software/gcc/slot-a/src/gcc/tree.h:4484
0x8a4416 fold_builtin_0
        /home/user/software/gcc/slot-a/src/gcc/builtins.cc:10621
0x8a4416 fold_builtin_n
        /home/user/software/gcc/slot-a/src/gcc/builtins.cc:10988
0x10c40c5 fold(tree_node*)
        /home/user/software/gcc/slot-a/src/gcc/fold-const.cc:13300
0xb1c944 fold_to_constant(tree_node*)
        /home/user/software/gcc/slot-a/src/gcc/cp/constexpr.cc:11369
0xb3e337 maybe_constant_value(tree_node*, tree_node*, mce_value)
        /home/user/software/gcc/slot-a/src/gcc/cp/constexpr.cc:11431
0xb6e9f0 cp_fully_fold
        /home/user/software/gcc/slot-a/src/gcc/cp/cp-gimplify.cc:3249
0xcb799d cp_parser_question_colon_clause
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11877
0xcb23c9 cp_parser_assignment_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11993
0xcb71d5 cp_parser_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:12184
0xce232e cp_parser_primary_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:6740
0xcce511 cp_parser_postfix_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:8893
0xccaded cp_parser_unary_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:10616
0xcccd60 cp_parser_sizeof_operand
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:37418
0xccb879 cp_parser_unary_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:10265
0xcb0594 cp_parser_cast_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11531
0xcb13c3 cp_parser_binary_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11634
0xcb21c2 cp_parser_assignment_expression
        /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11987
/home/user/software/gcc/slot-a/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /tmp/bug.cpp -quiet -dumpdir
a- -dumpbase bug.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -o
/tmp/ccuHEvGp.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

$ cat /tmp/bug.cpp

int main()
{
    return sizeof(__builtin_is_constant_evaluated() ? 0 : 0);
}
```

Compiler Explorer Reproducer: https://godbolt.org/z/xb9jvGzGd

GCC Commit Hash: 29e4b7f
(https://github.com/gcc-mirror/gcc/commit/29e4b7f1100ad3dd611da6fc3314a41978c5fc25)

Preprocessed source:
```cpp
// Target: x86_64-pc-linux-gnu
// Configured with: /home/user/software/gcc/slot-a/src/configure
--prefix=/home/user/software/gcc/slot-a --enable-languages=c,c++
--disable-bootstrap --disable-multilib --with-gmp=/usr --with-mpfr=/usr
--with-mpc=/usr
// Thread model: posix
// Supported LTO compression algorithms: zlib zstd
// gcc version 17.0.0 20260525 (experimental) (GCC)
//
// /tmp/bug.cpp: In function ‘int main()’:
// /tmp/bug.cpp:4:51: internal compiler error: in DECL_FUNCTION_CODE, at
tree.h:4484
//     4 |     return sizeof(__builtin_is_constant_evaluated() ? 0 : 0);
//       |                                                   ^
// 0x2925b1b internal_error(char const*, ...)
//      /home/user/software/gcc/slot-a/src/gcc/diagnostic-global-context.cc:787
// 0xac6559 fancy_abort(char const*, int, char const*)
//      /home/user/software/gcc/slot-a/src/gcc/diagnostics/context.cc:1813
// 0x8a4416 DECL_FUNCTION_CODE(tree_node const*)
//      /home/user/software/gcc/slot-a/src/gcc/tree.h:4484
// 0x8a4416 fold_builtin_0
//      /home/user/software/gcc/slot-a/src/gcc/builtins.cc:10621
// 0x8a4416 fold_builtin_n
//      /home/user/software/gcc/slot-a/src/gcc/builtins.cc:10988
// 0x10c40c5 fold(tree_node*)
//      /home/user/software/gcc/slot-a/src/gcc/fold-const.cc:13300
// 0xb1c944 fold_to_constant(tree_node*)
//      /home/user/software/gcc/slot-a/src/gcc/cp/constexpr.cc:11369
// 0xb3e337 maybe_constant_value(tree_node*, tree_node*, mce_value)
//      /home/user/software/gcc/slot-a/src/gcc/cp/constexpr.cc:11431
// 0xb6e9f0 cp_fully_fold
//      /home/user/software/gcc/slot-a/src/gcc/cp/cp-gimplify.cc:3249
// 0xcb799d cp_parser_question_colon_clause
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11877
// 0xcb23c9 cp_parser_assignment_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11993
// 0xcb71d5 cp_parser_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:12184
// 0xce232e cp_parser_primary_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:6740
// 0xcce511 cp_parser_postfix_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:8893
// 0xccaded cp_parser_unary_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:10616
// 0xcccd60 cp_parser_sizeof_operand
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:37418
// 0xccb879 cp_parser_unary_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:10265
// 0xcb0594 cp_parser_cast_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11531
// 0xcb13c3 cp_parser_binary_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11634
// 0xcb21c2 cp_parser_assignment_expression
//      /home/user/software/gcc/slot-a/src/gcc/cp/parser.cc:11987
// -quiet -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /tmp/bug.cpp -quiet
-dumpdir a- -dumpbase bug.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64
-freport-bug -o - -frandom-seed=0 -fdump-noaddr
// Please submit a full bug report, with preprocessed source.
// Please include the complete backtrace with any bug report.
// See <https://gcc.gnu.org/bugs/> for instructions.

//
/home/user/software/gcc/slot-a/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1plus
-quiet -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /tmp/bug.cpp -quiet -dumpdir
a- -dumpbase bug.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64
-freport-bug -o - -frandom-seed=0 -fdump-noaddr

# 0 "/tmp/bug.cpp"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3
# 0 "<command-line>" 2
# 1 "/tmp/bug.cpp"

int main()
{
    return sizeof(__builtin_is_constant_evaluated() ? 0 : 0);
}
```
  • [Bug c++/125487] ... lu.maltsis at postgrad dot manchester.ac.uk via Gcc-bugs

Reply via email to