forked from boostorg/system
Fix order-of-initialization problem, add initialization_test.cpp to detect regression.
[SVN r39449]
This commit is contained in:
@@ -214,9 +214,6 @@ namespace
|
||||
error_condition default_error_condition( int ev ) const;
|
||||
};
|
||||
|
||||
const posix_error_category posix_category_const;
|
||||
const system_error_category system_category_const;
|
||||
|
||||
// posix_error_category implementation ---------------------------------//
|
||||
|
||||
const char * posix_error_category::name() const
|
||||
@@ -378,11 +375,13 @@ namespace boost
|
||||
|
||||
BOOST_SYSTEM_DECL const error_category & get_system_category()
|
||||
{
|
||||
static const system_error_category system_category_const;
|
||||
return system_category_const;
|
||||
}
|
||||
|
||||
BOOST_SYSTEM_DECL const error_category & get_posix_category()
|
||||
{
|
||||
static const posix_error_category posix_category_const;
|
||||
return posix_category_const;
|
||||
}
|
||||
|
||||
|
@@ -42,6 +42,9 @@ project
|
||||
: : : <define>BOOST_SYSTEM_DYN_LINK
|
||||
: system_error_test_dll
|
||||
]
|
||||
[ run initialization_test.cpp
|
||||
: : : <define>BOOST_SYSTEM_DYN_LINK
|
||||
]
|
||||
[ run header_only_test.cpp
|
||||
: : : <link>static
|
||||
]
|
||||
|
28
test/initialization_test.cpp
Normal file
28
test/initialization_test.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// initialization_test.cpp -------------------------------------------------//
|
||||
|
||||
// Copyright Christoper Kohlhoff 2007
|
||||
|
||||
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See library home page at http://www.boost.org/libs/system
|
||||
|
||||
// This test verifiies that the error_category vtable does not suffer from
|
||||
// order-of-initialization problems.
|
||||
|
||||
#include <boost/test/minimal.hpp>
|
||||
#include <boost/system/error_code.hpp>
|
||||
|
||||
struct foo
|
||||
{
|
||||
foo()
|
||||
{
|
||||
boost::system::error_code ec;
|
||||
ec == boost::system::posix::permission_denied;
|
||||
}
|
||||
} f;
|
||||
|
||||
int test_main( int, char ** )
|
||||
{
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user