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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Semi reduced testcase for the ICE:
```
 struct nullopt{};

 struct vector
 {
   bool empty()const;
   struct iterator {
    int &operator*();
   };
 };

template<typename Container>
auto findLargest(const Container& container) -> decltype(auto) {
    if (container.empty()) {
        return nullopt{};
    }
    auto largestElementIt = typename Container::iterator{};
    return *largestElementIt;
}

int main() {
    vector numbers = {};
    auto largest = findLargest(numbers);
    return 0;
}
```

Reply via email to