//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// UNSUPPORTED: c++03

// RUN: %{build} -O2
// RUN: %{run}

// <map>

// Previously this code caused a segfault when compiled at -O2 due to undefined
// behavior in __tree. See https://llvm.org/PR28469

#include <functional>
#include <map>

void dummy() {}

struct F {
    std::map<int, std::function<void()> > m;
    F() { m[42] = &dummy; }
};

int main(int, char**) {
    F f;
    f = F();

  return 0;
}
