/* indexbyte.c -- implement strings.IndexByte for Go. Copyright 2013 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */#include <stddef.h>#include "runtime.h"#include "go-string.h"/* This is in C so that the compiler can optimize it appropriately. We deliberately don't split the stack in case it does call the library function, which shouldn't need much stack space. */intgoIndexByte(String,char)__asm__(GOSYM_PREFIX"strings.IndexByte")__attribute__((no_split_stack));intgoIndexByte(Strings,charb){constchar*p;p=__builtin_memchr((constchar*)s.str,b,s.len);if(p==NULL)return-1;returnp-(constchar*)s.str;}