Bug ID 1193659
Summary g++ internal compiler error: in is_this_parameter, at cp/semantics.c:10672
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware x86-64
OS openSUSE Tumbleweed
Status NEW
Severity Normal
Priority P5 - None
Component Development
Assignee screening-team-bugs@suse.de
Reporter geurt.vos@outerplane.nl
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

User-Agent:       Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36
Build Identifier: 

Compiling the following code results in an internal compiler error since g++
(SUSE Linux) 11.2.1 20211124 at any optimization level except -O0.

---

#include <coroutine>
#include <string_view>

struct awaitable {
    struct promise_type {
        auto initial_suspend() noexcept    { return std::suspend_never(); }
        auto final_suspend() noexcept { return std::suspend_never(); }
        void return_void();
        void unhandled_exception() noexcept;
        awaitable get_return_object() noexcept;
    };
};

struct coro_test {
    std::string_view s_;

    awaitable f()
    {
        if (s_.empty()) {
            co_return;
        }
    }
};

---

Reproducible: Always

Steps to Reproduce:
> g++ -std=c++20 -O1 -c test.cpp
Actual Results:  
test.cpp: In function ���������void
coro_test::f(coro_test::f()::_ZN9coro_test1fEv.Frame*)���������:
test.cpp:22:9: internal compiler error: in is_this_parameter, at
cp/semantics.c:10672
   22 |         }
      |         ^
0xeaf047 internal_error(char const*, ...)
        ???:0
0xea55a6 fancy_abort(char const*, int, char const*)
        ???:0
0x10c1745 maybe_constant_value(tree_node*, tree_node*, bool)
        ???:0
0x10c23c4 cp_fold_maybe_rvalue(tree_node*, bool)
        ???:0
0xfe436f walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0xfe451e walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0xfe47a7 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0xfe451e walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0xfe485f walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0xfe4831 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*,
tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*))
        ???:0
0x10d202e cp_fold_function(tree_node*)
        ???:0
0x15a485b c_parse_file()
        ???:0
0x15950e6 c_common_parse_file()
        ???:0


You are receiving this mail because: