require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_GLIBCXX_DEBUG_MACRO_SWITCH_H)) {
    eval 'sub _GLIBCXX_DEBUG_MACRO_SWITCH_H () {1;}' unless defined(&_GLIBCXX_DEBUG_MACRO_SWITCH_H);
    require 'debug/assertions.ph';
    unless(defined(&_GLIBCXX_DEBUG)) {
	eval 'sub __glibcxx_requires_cond {
	    my($_Cond,$_Msg) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_cond);
	eval 'sub __glibcxx_requires_valid_range {
	    my($_First,$_Last) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_valid_range);
	eval 'sub __glibcxx_requires_can_increment {
	    my($_First,$_Size) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_can_increment);
	eval 'sub __glibcxx_requires_can_increment_range {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_can_increment_range);
	eval 'sub __glibcxx_requires_can_decrement_range {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_can_decrement_range);
	eval 'sub __glibcxx_requires_sorted {
	    my($_First,$_Last) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_sorted);
	eval 'sub __glibcxx_requires_sorted_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_sorted_pred);
	eval 'sub __glibcxx_requires_sorted_set {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_sorted_set);
	eval 'sub __glibcxx_requires_sorted_set_pred {
	    my($_First1,$_Last1,$_First2,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_sorted_set_pred);
	eval 'sub __glibcxx_requires_partitioned_lower {
	    my($_First,$_Last,$_Value) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_partitioned_lower);
	eval 'sub __glibcxx_requires_partitioned_upper {
	    my($_First,$_Last,$_Value) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_partitioned_upper);
	eval 'sub __glibcxx_requires_partitioned_lower_pred {
	    my($_First,$_Last,$_Value,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_partitioned_lower_pred);
	eval 'sub __glibcxx_requires_partitioned_upper_pred {
	    my($_First,$_Last,$_Value,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_partitioned_upper_pred);
	eval 'sub __glibcxx_requires_heap {
	    my($_First,$_Last) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_heap);
	eval 'sub __glibcxx_requires_heap_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_heap_pred);
	eval 'sub __glibcxx_requires_string {
	    my($_String) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_string);
	eval 'sub __glibcxx_requires_string_len {
	    my($_String,$_Len) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_string_len);
	eval 'sub __glibcxx_requires_irreflexive {
	    my($_First,$_Last) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_irreflexive);
	eval 'sub __glibcxx_requires_irreflexive2 {
	    my($_First,$_Last) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_irreflexive2);
	eval 'sub __glibcxx_requires_irreflexive_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_irreflexive_pred);
	eval 'sub __glibcxx_requires_irreflexive_pred2 {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q();
	}' unless defined(&__glibcxx_requires_irreflexive_pred2);
    } else {
	require 'debug/macros.ph';
	eval 'sub __glibcxx_requires_cond {
	    my($_Cond,$_Msg) = @_;
    	    eval q( &_GLIBCXX_DEBUG_VERIFY($_Cond,$_Msg));
	}' unless defined(&__glibcxx_requires_cond);
	eval 'sub __glibcxx_requires_valid_range {
	    my($_First,$_Last) = @_;
    	    eval q( &__glibcxx_check_valid_range($_First,$_Last));
	}' unless defined(&__glibcxx_requires_valid_range);
	eval 'sub __glibcxx_requires_can_increment {
	    my($_First,$_Size) = @_;
    	    eval q( &__glibcxx_check_can_increment($_First,$_Size));
	}' unless defined(&__glibcxx_requires_can_increment);
	eval 'sub __glibcxx_requires_can_increment_range {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q( &__glibcxx_check_can_increment_range($_First1,$_Last1,$_First2));
	}' unless defined(&__glibcxx_requires_can_increment_range);
	eval 'sub __glibcxx_requires_can_decrement_range {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q( &__glibcxx_check_can_decrement_range($_First1,$_Last1,$_First2));
	}' unless defined(&__glibcxx_requires_can_decrement_range);
	eval 'sub __glibcxx_requires_sorted {
	    my($_First,$_Last) = @_;
    	    eval q( &__glibcxx_check_sorted($_First,$_Last));
	}' unless defined(&__glibcxx_requires_sorted);
	eval 'sub __glibcxx_requires_sorted_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q( &__glibcxx_check_sorted_pred($_First,$_Last,$_Pred));
	}' unless defined(&__glibcxx_requires_sorted_pred);
	eval 'sub __glibcxx_requires_sorted_set {
	    my($_First1,$_Last1,$_First2) = @_;
    	    eval q( &__glibcxx_check_sorted_set($_First1,$_Last1,$_First2));
	}' unless defined(&__glibcxx_requires_sorted_set);
	eval 'sub __glibcxx_requires_sorted_set_pred {
	    my($_First1,$_Last1,$_First2,$_Pred) = @_;
    	    eval q( &__glibcxx_check_sorted_set_pred($_First1,$_Last1,$_First2,$_Pred));
	}' unless defined(&__glibcxx_requires_sorted_set_pred);
	eval 'sub __glibcxx_requires_partitioned_lower {
	    my($_First,$_Last,$_Value) = @_;
    	    eval q( &__glibcxx_check_partitioned_lower($_First,$_Last,$_Value));
	}' unless defined(&__glibcxx_requires_partitioned_lower);
	eval 'sub __glibcxx_requires_partitioned_upper {
	    my($_First,$_Last,$_Value) = @_;
    	    eval q( &__glibcxx_check_partitioned_upper($_First,$_Last,$_Value));
	}' unless defined(&__glibcxx_requires_partitioned_upper);
	eval 'sub __glibcxx_requires_partitioned_lower_pred {
	    my($_First,$_Last,$_Value,$_Pred) = @_;
    	    eval q( &__glibcxx_check_partitioned_lower_pred($_First,$_Last,$_Value,$_Pred));
	}' unless defined(&__glibcxx_requires_partitioned_lower_pred);
	eval 'sub __glibcxx_requires_partitioned_upper_pred {
	    my($_First,$_Last,$_Value,$_Pred) = @_;
    	    eval q( &__glibcxx_check_partitioned_upper_pred($_First,$_Last,$_Value,$_Pred));
	}' unless defined(&__glibcxx_requires_partitioned_upper_pred);
	eval 'sub __glibcxx_requires_heap {
	    my($_First,$_Last) = @_;
    	    eval q( &__glibcxx_check_heap($_First,$_Last));
	}' unless defined(&__glibcxx_requires_heap);
	eval 'sub __glibcxx_requires_heap_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q( &__glibcxx_check_heap_pred($_First,$_Last,$_Pred));
	}' unless defined(&__glibcxx_requires_heap_pred);
	eval 'sub __glibcxx_requires_string {
	    my($_String) = @_;
    	    eval q( &__glibcxx_check_string($_String));
	}' unless defined(&__glibcxx_requires_string);
	eval 'sub __glibcxx_requires_string_len {
	    my($_String,$_Len) = @_;
    	    eval q( &__glibcxx_check_string_len($_String,$_Len));
	}' unless defined(&__glibcxx_requires_string_len);
	eval 'sub __glibcxx_requires_irreflexive {
	    my($_First,$_Last) = @_;
    	    eval q( &__glibcxx_check_irreflexive($_First,$_Last));
	}' unless defined(&__glibcxx_requires_irreflexive);
	eval 'sub __glibcxx_requires_irreflexive2 {
	    my($_First,$_Last) = @_;
    	    eval q( &__glibcxx_check_irreflexive2($_First,$_Last));
	}' unless defined(&__glibcxx_requires_irreflexive2);
	eval 'sub __glibcxx_requires_irreflexive_pred {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q( &__glibcxx_check_irreflexive_pred($_First,$_Last,$_Pred));
	}' unless defined(&__glibcxx_requires_irreflexive_pred);
	eval 'sub __glibcxx_requires_irreflexive_pred2 {
	    my($_First,$_Last,$_Pred) = @_;
    	    eval q( &__glibcxx_check_irreflexive_pred2($_First,$_Last,$_Pred));
	}' unless defined(&__glibcxx_requires_irreflexive_pred2);
	require 'debug/functions.ph';
    }
}
1;
