1// { dg-options "-std=gnu++0x" } 2// 2007-06-05 Benjamin Kosnik <bkoz@redhat.com> 3 4// Copyright (C) 2007, 2008, 2009 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 <cstring> 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::strcmp(err1.runtime_error::what(), s.c_str()) == 0 ); 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::strcmp(err2.runtime_error::what(), s.c_str()) == 0 ); 44 } 45 46 return 0; 47} 48