require '_h2ph_pre.ph';

unless(defined(&_STRING_H)) {
    die("Never use <bits/string.h> directly; include <string.h> instead.");
}
unless(defined(&_STRING_ARCH_unaligned)) {
    sub _STRING_ARCH_unaligned () {	1;}
}
if(!defined (defined(&__NO_STRING_INLINES) ? &__NO_STRING_INLINES : 0)  && defined (defined(&__USE_STRING_INLINES) ? &__USE_STRING_INLINES : 0)  && defined (defined(&__GNUC__) ? &__GNUC__ : 0)  && (defined(&__GNUC__) ? &__GNUC__ : 0) >= 2 && !(defined(&__BOUNDED_POINTERS__) ? &__BOUNDED_POINTERS__ : 0)) {
    unless(defined(&__STRING_INLINE)) {
	if(defined(&__cplusplus)) {
	    eval 'sub __STRING_INLINE () { &inline;}' unless defined(&__STRING_INLINE);
	} else {
	    eval 'sub __STRING_INLINE () { &extern  &__inline;}' unless defined(&__STRING_INLINE);
	}
    }
    eval 'sub _HAVE_STRING_ARCH_memcpy () {1;}' unless defined(&_HAVE_STRING_ARCH_memcpy);
    eval 'sub memcpy {
        local($dest, $src, $n) = @_;
	    eval q(( &__extension__ ( &__builtin_constant_p ($n) ?  &__memcpy_c ($dest, $src, $n) :  &memcpy ($dest, $src, $n))));
    }' unless defined(&memcpy);
    eval 'sub __COMMON_CODE {
        local($x) = @_;
	    eval q( &__asm__  &__volatile__ (\\"cld\\\\n\\\\t\\" \\"rep; movsl\\" $x : \\"=&c\\" ( &__d0), \\"=&D\\" ( &__d1), \\"=&S\\" ( &__d2) : \\"0\\" ( &__n / 4), \\"1\\" (& ($__u->{__uc})), \\"2\\" ( &__src) : \\"memory\\"););
    }' unless defined(&__COMMON_CODE);
    undef(&__COMMON_CODE) if defined(&__COMMON_CODE);
    eval 'sub _HAVE_STRING_ARCH_memmove () {1;}' unless defined(&_HAVE_STRING_ARCH_memmove);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_memset () {1;}' unless defined(&_HAVE_STRING_ARCH_memset);
    eval 'sub _USE_STRING_ARCH_memset () {1;}' unless defined(&_USE_STRING_ARCH_memset);
    eval 'sub memset {
        local($s, $c, $n) = @_;
	    eval q(( &__extension__ ( &__builtin_constant_p ? ( &__builtin_constant_p ?  &__memset_cc ($s, 0x1010101 * , $n) :  &__memset_cg ($s, 0x1010101 * ($c), $n)) :  &__memset_gg ($s, $c, $n))));
    }' unless defined(&memset);
    eval 'sub __COMMON_CODE {
        local($x) = @_;
	    eval q( &__asm__  &__volatile__ (\\"cld\\\\n\\\\t\\" \\"rep; stosl\\" $x : \\"=&c\\" ( &__d0), \\"=&D\\" ( &__d1) : \\"a\\" ( &__pattern), \\"0\\" ( &__n / 4), \\"1\\" (& ($__u->{__uc})) : \\"memory\\"));
    }' unless defined(&__COMMON_CODE);
    undef(&__COMMON_CODE) if defined(&__COMMON_CODE);
    eval 'sub _HAVE_STRING_ARCH_memchr () {1;}' unless defined(&_HAVE_STRING_ARCH_memchr);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_memrchr () {1;}' unless defined(&_HAVE_STRING_ARCH_memrchr);
    unless(defined(&_FORCE_INLINES)) {
	if(defined(&__USE_GNU)) {
	    eval 'sub memrchr {
	        local($s, $c, $n) = @_;
    		eval q( &__memrchr ($s, $c, $n));
	    }' unless defined(&memrchr);
	}
    }
    eval 'sub _HAVE_STRING_ARCH_strlen () {1;}' unless defined(&_HAVE_STRING_ARCH_strlen);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strcpy () {1;}' unless defined(&_HAVE_STRING_ARCH_strcpy);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strncpy () {1;}' unless defined(&_HAVE_STRING_ARCH_strncpy);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strcat () {1;}' unless defined(&_HAVE_STRING_ARCH_strcat);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strncat () {1;}' unless defined(&_HAVE_STRING_ARCH_strncat);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strcmp () {1;}' unless defined(&_HAVE_STRING_ARCH_strcmp);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strncmp () {1;}' unless defined(&_HAVE_STRING_ARCH_strncmp);
    unless(defined(&_FORCE_INLINES)) {
    }
    eval 'sub _HAVE_STRING_ARCH_strchr () {1;}' unless defined(&_HAVE_STRING_ARCH_strchr);
    eval 'sub _USE_STRING_ARCH_strchr () {1;}' unless defined(&_USE_STRING_ARCH_strchr);
    eval 'sub strchr {
        local($s, $c) = @_;
	    eval q(( &__extension__ ( &__builtin_constant_p ($c) ?  &__strchr_c ($s, (($c) & 0xff) << 8) :  &__strchr_g ($s, $c))));
    }' unless defined(&strchr);
    eval 'sub _HAVE_STRING_ARCH_strchrnul () {1;}' unless defined(&_HAVE_STRING_ARCH_strchrnul);
    eval 'sub __strchrnul {
        local($s, $c) = @_;
	    eval q(( &__extension__ ( &__builtin_constant_p ? ( == ord(\'\\\\0\') ?  &__rawmemchr ($s, $c) :  &__strchrnul_c ($s, (($c) & 0xff) << 8)) :  &__strchrnul_g ($s, $c))));
    }' unless defined(&__strchrnul);
    if(defined(&__USE_GNU)) {
	eval 'sub strchrnul {
	    local($s, $c) = @_;
    	    eval q( &__strchrnul ($s, $c));
	}' unless defined(&strchrnul);
    }
    eval 'sub _HAVE_STRING_ARCH_strcspn () {1;}' unless defined(&_HAVE_STRING_ARCH_strcspn);
    unless(defined(&_FORCE_INLINES)) {
	if(defined(&__PIC__)) {
	} else {
	}
    }
    eval 'sub _HAVE_STRING_ARCH_strspn () {1;}' unless defined(&_HAVE_STRING_ARCH_strspn);
    unless(defined(&_FORCE_INLINES)) {
	if(defined(&__PIC__)) {
	} else {
	}
    }
    eval 'sub _HAVE_STRING_ARCH_strpbrk () {1;}' unless defined(&_HAVE_STRING_ARCH_strpbrk);
    unless(defined(&_FORCE_INLINES)) {
	if(defined(&__PIC__)) {
	} else {
	}
    }
    eval 'sub _HAVE_STRING_ARCH_strstr () {1;}' unless defined(&_HAVE_STRING_ARCH_strstr);
    unless(defined(&_FORCE_INLINES)) {
	if(defined(&__PIC__)) {
	} else {
	}
    }
    unless(defined(&_FORCE_INLINES)) {
	undef(&__STRING_INLINE) if defined(&__STRING_INLINE);
    }
}
1;
