#ifndef _TYPE_UTIL_H_ #define _TYPE_UTIL_H_ /* * IS A ... functions */ extern int is_typedef _ANSI_PROTO_((symbol_t*)); extern int is_array _ANSI_PROTO_((typeinfo_t*)); extern int is_access _ANSI_PROTO_((typeinfo_t*)); extern int is_aggregate _ANSI_PROTO_((typeinfo_t*)); extern int is_access_to_record _ANSI_PROTO_((typeinfo_t*)); extern int is_enum_literal _ANSI_PROTO_((symbol_t*)); extern int is_function_pointer _ANSI_PROTO_((typeinfo_t *)); extern int is_static_function _ANSI_PROTO_((typeinfo_t *)); extern int alignto _ANSI_PROTO_((int,int)); /* * Allocation, copy and concatination */ extern typeinfo_t *new_type _ANSI_PROTO_((typekind_t)); extern typeinfo_t *copy_type _ANSI_PROTO_((typeinfo_t*)); extern typeinfo_t *concat_types _ANSI_PROTO_((typeinfo_t*, typeinfo_t*)); /* * Functions to modify types */ extern typeinfo_t *set_signed_type _ANSI_PROTO_((typeinfo_t*)); extern typeinfo_t *set_unsigned_type _ANSI_PROTO_((typeinfo_t*)); extern typeinfo_t *add_pointer_type _ANSI_PROTO_((typeinfo_t*)); extern typeinfo_t *add_function_type _ANSI_PROTO_((typeinfo_t*)); extern typeinfo_t *add_array_type _ANSI_PROTO_((typeinfo_t*, host_int_t)); /* * Type sizeof() and alignof() functions */ extern int type_sizeof _ANSI_PROTO_((typeinfo_t*)); extern int type_alignof _ANSI_PROTO_((typeinfo_t*)); /* * Routines for maintaining type tables and comparing types */ extern unsigned int set_hash_for_type _ANSI_PROTO_((typeinfo_t*)); extern int equal_types _ANSI_PROTO_((typeinfo_t*, typeinfo_t*)); #endif /* _TYPE_UTIL_H_ */