require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SSP_SSP_H_)) {
    eval 'sub _SSP_SSP_H_ () {1;}' unless defined(&_SSP_SSP_H_);
    require 'sys/cdefs.ph';
    if(!defined(&__cplusplus)) {
	if((defined(&_FORTIFY_SOURCE) ? &_FORTIFY_SOURCE : undef) > 0 && !defined(&__lint__)  && ((defined(&__OPTIMIZE__) ? &__OPTIMIZE__ : undef) > 0|| defined(&__clang__))  &&  &__GNUC_PREREQ__(4, 1)) {
	    if((defined(&_FORTIFY_SOURCE) ? &_FORTIFY_SOURCE : undef) > 1) {
		eval 'sub __SSP_FORTIFY_LEVEL () {2;}' unless defined(&__SSP_FORTIFY_LEVEL);
	    } else {
		eval 'sub __SSP_FORTIFY_LEVEL () {1;}' unless defined(&__SSP_FORTIFY_LEVEL);
	    }
	} else {
	    eval 'sub __SSP_FORTIFY_LEVEL () {0;}' unless defined(&__SSP_FORTIFY_LEVEL);
	}
    } else {
	eval 'sub __SSP_FORTIFY_LEVEL () {0;}' unless defined(&__SSP_FORTIFY_LEVEL);
    }
    if((defined(&__SSP_FORTIFY_LEVEL) ? &__SSP_FORTIFY_LEVEL : undef) == 0) {
	eval 'sub __ssp_real_ {
	    my($fun) = @_;
    	    eval q($fun);
	}' unless defined(&__ssp_real_);
    } else {
	eval 'sub __ssp_real_ {
	    my($fun) = @_;
    	    eval q( &__ssp_real_  $fun);
	}' unless defined(&__ssp_real_);
    }
    eval 'sub __ssp_real {
        my($fun) = @_;
	    eval q( &__ssp_real_($fun));
    }' unless defined(&__ssp_real);
    eval 'sub __ssp_inline () { &static  &__inline  &__attribute__(( &__always_inline__));}' unless defined(&__ssp_inline);
    eval 'sub __ssp_bos {
        my($ptr) = @_;
	    eval q( &__builtin_object_size($ptr,  &__SSP_FORTIFY_LEVEL > 1));
    }' unless defined(&__ssp_bos);
    eval 'sub __ssp_bos0 {
        my($ptr) = @_;
	    eval q( &__builtin_object_size($ptr, 0));
    }' unless defined(&__ssp_bos0);
    eval 'sub __ssp_check {
        my($buf, $len, $bos) = @_;
	    eval q( &if ($bos($buf) != -1 && $len > $bos($buf))  &__chk_fail());
    }' unless defined(&__ssp_check);
    eval 'sub __ssp_redirect_raw {
        my($rtype, $fun, $symbol, $args, $call, $cond, $bos) = @_;
	    eval q($rtype  &__ssp_real_($fun) $args  &__RENAME($symbol);  &__ssp_inline $rtype $fun $args  &__RENAME( &__ssp_protected_  $fun);  &__ssp_inline $rtype $fun $args {  &if ($cond)  &__ssp_check( &__buf,  &__len, $bos);  &return  &__ssp_real_($fun) $call; });
    }' unless defined(&__ssp_redirect_raw);
    eval 'sub __ssp_redirect {
        my($rtype, $fun, $args, $call) = @_;
	    eval q( &__ssp_redirect_raw($rtype, $fun, $fun, $args, $call, 1,  &__ssp_bos));
    }' unless defined(&__ssp_redirect);
    eval 'sub __ssp_redirect0 {
        my($rtype, $fun, $args, $call) = @_;
	    eval q( &__ssp_redirect_raw($rtype, $fun, $fun, $args, $call, 1,  &__ssp_bos0));
    }' unless defined(&__ssp_redirect0);
    eval 'sub __ssp_overlap {
        my($a, $b, $l) = @_;
	    eval q(((($a) <= ($b)  && ($b) < ($a) + ($l)) || (($b) <= ($a)  && ($a) < ($b) + ($l))));
    }' unless defined(&__ssp_overlap);
}
1;
