require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_ARM_INT_CONST_H_)) {
    eval 'sub _ARM_INT_CONST_H_ () {1;}' unless defined(&_ARM_INT_CONST_H_);
    if(defined(&__INTMAX_C_SUFFIX__)) {
	require 'sys/common_int_const.ph';
    } else {
	eval 'sub INT8_C {
	    my($c) = @_;
    	    eval q($c);
	}' unless defined(&INT8_C);
	eval 'sub INT16_C {
	    my($c) = @_;
    	    eval q($c);
	}' unless defined(&INT16_C);
	eval 'sub INT32_C {
	    my($c) = @_;
    	    eval q($c);
	}' unless defined(&INT32_C);
	if(defined(&_LP64)) {
	    eval 'sub INT64_C {
	        my($c) = @_;
    		eval q($c   &L);
	    }' unless defined(&INT64_C);
	} else {
	    eval 'sub INT64_C {
	        my($c) = @_;
    		eval q($c   &LL);
	    }' unless defined(&INT64_C);
	}
	eval 'sub UINT8_C {
	    my($c) = @_;
    	    eval q($c);
	}' unless defined(&UINT8_C);
	eval 'sub UINT16_C {
	    my($c) = @_;
    	    eval q($c);
	}' unless defined(&UINT16_C);
	eval 'sub UINT32_C {
	    my($c) = @_;
    	    eval q($c   &U);
	}' unless defined(&UINT32_C);
	if(defined(&_LP64)) {
	    eval 'sub UINT64_C {
	        my($c) = @_;
    		eval q($c   &UL);
	    }' unless defined(&UINT64_C);
	} else {
	    eval 'sub UINT64_C {
	        my($c) = @_;
    		eval q($c   &ULL);
	    }' unless defined(&UINT64_C);
	}
	if(defined(&_LP64)) {
	    eval 'sub INTMAX_C {
	        my($c) = @_;
    		eval q($c   &L);
	    }' unless defined(&INTMAX_C);
	    eval 'sub UINTMAX_C {
	        my($c) = @_;
    		eval q($c   &UL);
	    }' unless defined(&UINTMAX_C);
	} else {
	    eval 'sub INTMAX_C {
	        my($c) = @_;
    		eval q($c   &LL);
	    }' unless defined(&INTMAX_C);
	    eval 'sub UINTMAX_C {
	        my($c) = @_;
    		eval q($c   &ULL);
	    }' unless defined(&UINTMAX_C);
	}
    }
}
1;
