modernc.org/cc@v1.0.1/v2/headers/linux_amd64/builtin.h (about) 1 // Copyright 2018 The CC Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build ignore 6 7 #ifndef _BUILTIN_H_ 8 #define _BUILTIN_H_ 9 10 #include "predefined.h" 11 12 typedef void *__builtin_va_list; 13 14 typedef void *__FILE_TYPE__; 15 16 __SIZE_TYPE__ __builtin_strlen(char *__s); 17 __UINT64_TYPE__ __builtin_bswap64(__UINT64_TYPE__ x); 18 __builtin_va_list __builtin_va_copy(); 19 char *__builtin_strchrnul(char *, int); 20 char *__builtin_strcpy(char *__dest, char *__src); 21 double _Complex __builtin_complex(double, double); 22 double __builtin_cimag(double _Complex); 23 double __builtin_copysign(double x, double y); 24 float _Complex __builtin_complexf(float, float); 25 float __builtin_cimagf(float _Complex); 26 int __builtin_abs(int j); 27 int __builtin_ffs(int i); 28 int __builtin_isprint(int); 29 int __builtin_memcmp(void *__s1, void *__s2, __SIZE_TYPE__ __n); 30 int __builtin_printf(char *__format, ...); 31 int __builtin_sprintf(char *__s, char *__format, ...); 32 int __builtin_strcmp(char *__s1, char *__s2); 33 int __signbit(double x); 34 int __signbitf(float x); 35 long double _Complex __builtin_complexl(double, double); 36 long double __builtin_cimagl(long double _Complex); 37 void *__GO2__(char*); 38 void *__builtin_alloca(__SIZE_TYPE__ __size); 39 void *__builtin_memcpy(void *dest, const void *src, __SIZE_TYPE__ n); 40 void *__builtin_memset(void *s, int c, __SIZE_TYPE__ n); 41 void __GO__(char*); 42 void __builtin_abort(void); 43 void __builtin_exit(int __status); 44 void __builtin_free(void*); 45 void __builtin_trap(void); 46 void __builtin_va_end(__builtin_va_list); 47 void __register_stdfiles(void *, void *, void *, void *); 48 49 #define __builtin_choose_expr(a, b, c) (a) ? (b) : (c) 50 #define __builtin_expect(exp, c) (exp) 51 #define __builtin_offsetof(st, m) ((__SIZE_TYPE__)(&((st *)0)->m)) 52 #define __builtin_prefetch(addr, ...) (void)(addr) 53 #define __builtin_signbit(x) (sizeof(x) == sizeof(float) ? __signbitf(x) : sizeof (x) == sizeof(double) ? __signbit(x) : __signbitl(x)) 54 #define __builtin_types_compatible_p(type1, type2) __builtin_types_compatible__((type1){}, (type2){}) 55 #define __builtin_va_arg(ap, type) (type)ap 56 #ifdef __ccgo__ 57 void __log(char*, ...); 58 #define __builtin_va_copy(dest, src) dest = __builtin_va_copy(src) 59 #define __builtin_va_end(ap) __builtin_va_end(ap) 60 #define __builtin_va_start(ap, arg) ap = __GO2__("X__builtin_va_start(tls, ap)") 61 #define __log(s, ...) __log("%s:%i.%s: " s, __FILE__, __LINE__, __func__, __VA_ARGS__) 62 #else 63 #define __builtin_va_copy(dest, src) dest = src 64 #define __builtin_va_end(ap) ap = (void*)0 65 #define __builtin_va_start(ap, arg) ap = (void*)-1 66 #endif 67 #define __complex__ _Complex 68 #define __const const 69 #define __extension__ 70 #define __typeof__ typeof 71 #define __volatile volatile 72 73 #endif /* _BUILTIN_H_ */