require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&SANITIZER_ASAN_INTERFACE_H)) {
    eval 'sub SANITIZER_ASAN_INTERFACE_H () {1;}' unless defined(&SANITIZER_ASAN_INTERFACE_H);
    require 'sanitizer/common_interface_defs.ph';
    if(defined(&__cplusplus)) {
    }
    if( &__has_feature((defined(&address_sanitizer) ? &address_sanitizer : undef)) || defined(&__SANITIZE_ADDRESS__)) {
	eval 'sub ASAN_POISON_MEMORY_REGION {
	    my($addr, $size) = @_;
    	    eval q( &__asan_poison_memory_region(($addr), ($size)));
	}' unless defined(&ASAN_POISON_MEMORY_REGION);
	eval 'sub ASAN_UNPOISON_MEMORY_REGION {
	    my($addr, $size) = @_;
    	    eval q( &__asan_unpoison_memory_region(($addr), ($size)));
	}' unless defined(&ASAN_UNPOISON_MEMORY_REGION);
    } else {
	eval 'sub ASAN_POISON_MEMORY_REGION {
	    my($addr, $size) = @_;
    	    eval q((( &void)($addr), ( &void)($size)));
	}' unless defined(&ASAN_POISON_MEMORY_REGION);
	eval 'sub ASAN_UNPOISON_MEMORY_REGION {
	    my($addr, $size) = @_;
    	    eval q((( &void)($addr), ( &void)($size)));
	}' unless defined(&ASAN_UNPOISON_MEMORY_REGION);
    }
    if(defined(&__cplusplus)) {
    }
}
1;
