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;
|
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 ---------------------------------//
|
// posix_error_category implementation ---------------------------------//
|
||||||
|
|
||||||
const char * posix_error_category::name() const
|
const char * posix_error_category::name() const
|
||||||
@@ -378,11 +375,13 @@ namespace boost
|
|||||||
|
|
||||||
BOOST_SYSTEM_DECL const error_category & get_system_category()
|
BOOST_SYSTEM_DECL const error_category & get_system_category()
|
||||||
{
|
{
|
||||||
|
static const system_error_category system_category_const;
|
||||||
return system_category_const;
|
return system_category_const;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_SYSTEM_DECL const error_category & get_posix_category()
|
BOOST_SYSTEM_DECL const error_category & get_posix_category()
|
||||||
{
|
{
|
||||||
|
static const posix_error_category posix_category_const;
|
||||||
return posix_category_const;
|
return posix_category_const;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -42,6 +42,9 @@ project
|
|||||||
: : : <define>BOOST_SYSTEM_DYN_LINK
|
: : : <define>BOOST_SYSTEM_DYN_LINK
|
||||||
: system_error_test_dll
|
: system_error_test_dll
|
||||||
]
|
]
|
||||||
|
[ run initialization_test.cpp
|
||||||
|
: : : <define>BOOST_SYSTEM_DYN_LINK
|
||||||
|
]
|
||||||
[ run header_only_test.cpp
|
[ run header_only_test.cpp
|
||||||
: : : <link>static
|
: : : <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