示例#1
0
void f1 (char *p, __SIZE_TYPE__ sz)
{
  char *q = __builtin_memchr (p, 0, sz);
  __PTRDIFF_TYPE__ n = q - p;

  if (n >= __PTRDIFF_MAX__)
    __builtin_abort ();
}
示例#2
0
int
IndexByte (struct __go_open_array s, char b)
{
  char *p;

  p = __builtin_memchr (s.__values, b, s.__count);
  if (p == NULL)
    return -1;
  return p - (char *) s.__values;
}
示例#3
0
文件: runtime.c 项目: CookieChen/gcc
bool
runtime_showframe(String s, bool current)
{
	static int32 traceback = -1;

	if(current && runtime_m()->throwing > 0)
		return 1;
	if(traceback < 0)
		traceback = runtime_gotraceback(nil);
	return traceback > 1 || (__builtin_memchr(s.str, '.', s.len) != nil && __builtin_memcmp(s.str, "runtime.", 7) != 0);
}
示例#4
0
constexpr const void *f2 (const char *p, int q, size_t r) { return __builtin_memchr (p, q, r); }
示例#5
0
constexpr const void *f1 (const char *p, int q) { return __builtin_memchr (p, q, __builtin_strlen (p) + 1); }
示例#6
0
文件: go-fieldtrack.c 项目: kraj/gcc
void
runtime_Fieldtrack (void *m)
{
    const char *p;
    const char *pend;
    const char *prefix;
    size_t prefix_len;

    if (__go_td_MN6_string__N4_bool == NULL)
        return;

    p = __data_start;
    if (p == NULL)
        p = __etext;
    if (p == NULL)
        p = _etext;
    if (p == NULL)
        return;

    pend = __edata;
    if (pend == NULL)
        pend = _edata;
    if (pend == NULL)
        pend = __bss_start;
    if (pend == NULL)
        return;

    prefix = "fieldtrack ";
    prefix_len = __builtin_strlen (prefix);

    while (p < pend)
    {
        const char *q1;
        const char *q2;

        q1 = __builtin_memchr (p + prefix_len, '"', pend - (p + prefix_len));
        if (q1 == NULL)
            break;

        if (__builtin_memcmp (q1 - prefix_len, prefix, prefix_len) != 0)
        {
            p = q1 + 1;
            continue;
        }

        q1++;
        q2 = __builtin_memchr (q1, '"', pend - q1);
        if (q2 == NULL)
            break;

        if (__builtin_memchr (q1, '\0', q2 - q1) == NULL)
        {
            String s;
            _Bool b;

            s.str = (const byte *) q1;
            s.len = q2 - q1;
            b = 1;
            mapassign1((const void*) __go_td_MN6_string__N4_bool, m, &s, &b);
        }

        p = q2;
    }
}