require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GLIBCXX_CXX_ALLOCATOR_H)) {
    eval 'sub _GLIBCXX_CXX_ALLOCATOR_H () {1;}' unless defined(&_GLIBCXX_CXX_ALLOCATOR_H);
    require 'ext/new_allocator.ph';
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
    } else {
	eval 'sub __allocator_base () { &__gnu_cxx:: &new_allocator;}' unless defined(&__allocator_base);
    }
    unless(defined(&_GLIBCXX_SANITIZE_STD_ALLOCATOR)) {
	if(defined(&__SANITIZE_ADDRESS__)) {
	    eval 'sub _GLIBCXX_SANITIZE_STD_ALLOCATOR () {1;}' unless defined(&_GLIBCXX_SANITIZE_STD_ALLOCATOR);
	}
 elsif(defined (&__has_feature)) {
	    if( &__has_feature((defined(&address_sanitizer) ? &address_sanitizer : undef))) {
		eval 'sub _GLIBCXX_SANITIZE_STD_ALLOCATOR () {1;}' unless defined(&_GLIBCXX_SANITIZE_STD_ALLOCATOR);
	    }
	}
    }
}
1;
