1// { dg-options "-std=gnu++11" }
2// 2007-06-05 Benjamin Kosnik  <bkoz@redhat.com>
3
4// Copyright (C) 2007-2015 Free Software Foundation, Inc.
5//
6// This file is part of the GNU ISO C++ Library.  This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING3.  If not see
19// <http://www.gnu.org/licenses/>.
20
21#include <string>
22#include <system_error>
23#include <testsuite_hooks.h>
24
25int main()
26{
27  bool test __attribute__((unused)) = true;
28  const std::string s("too late: boulangerie out of pain au raisin");
29  const std::error_code
30    e(std::make_error_code(std::errc::operation_not_supported));
31
32  // 1
33  {
34    std::system_error err1(e, s);
35    VERIFY( err1.code() == e );
36    VERIFY( std::string(err1.what()).find(s) != std::string::npos );
37  }
38
39  // 2
40  {
41    std::system_error err2(95, std::system_category(), s);
42    VERIFY( err2.code() == std::error_code(95, std::system_category()) );
43    VERIFY( std::string((err2.what(), s)).find(s) != std::string::npos );
44  }
45
46  return 0;
47}
48