On 12/14/2021 9:53 AM, Jakub Jelinek via Gcc-patches wrote:
On Thu, Dec 09, 2021 at 05:32:02PM +0000, Hafiz Abid Qadeer wrote:
Commit 13b6c7639cf assumed that registers in a span will be in a certain
order. But that assumption is not true at least for the big endian targets.
Currently amdgcn is probably only target where CFA is split into multiple
registers so build_span_loc is only gets called for it. However, the
dwf_cfa_reg function where this ICE was seen can be called for any
architecture from the comparison dwf_cfa_reg (src) == cur_cfa->reg in
dwarf2out_frame_debug_expr. So dwf_cfa_reg should not assume certain
order of registers.
I was tempted to modify the assert to handle big-endian cases but that will
still be error prone and may fail on some other targets.
Do you have a preprocessed testcase on which the ICE triggers on ARM EB?
I think I'd like to see what we were emitting in debug info for it before
r12-5833 and what we emit with this assert removed after it.
I assumed it wouldn't affect anything but GCN during the review.
Seems the arm span hook for EB will swap pairs in the list:
for (i = 0; i < nregs; i += 2)
if (TARGET_BIG_END)
{
parts[i] = gen_rtx_REG (SImode, regno + i + 1);
parts[i + 1] = gen_rtx_REG (SImode, regno + i);
}
BTW, I wonder about those
dw_stack_pointer_regnum = dwf_cfa_reg (gen_rtx_REG (Pmode,
STACK_POINTER_REGNUM));
and
dw_frame_pointer_regnum
= dwf_cfa_reg (gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM));
Can't those use
dw_stack_pointer_regnum = dwf_cfa_reg (stack_pointer_rtx);
and
dw_frame_pointer_regnum = dwf_cfa_reg (hard_frame_pointer_rtx);
?
I think the attached testcase should trigger on c6x with -mbig-endian -O2 -g
Jeff
# 0 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c"
# 1
"//home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-obj/newlib/c6x-elf/be/newlib/libc/argz//"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c"
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/argz.h"
1 3 4
# 10
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/argz.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/errno.h"
1 3 4
# 5
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/errno.h"
3 4
typedef int error_t;
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/errno.h"
1 3 4
# 11
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/errno.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
1 3 4
# 13
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/_ansi.h"
1 3 4
# 10
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/_ansi.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-obj/newlib/c6x-elf/be/newlib/targ-include/newlib.h"
1 3 4
# 14
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-obj/newlib/c6x-elf/be/newlib/targ-include/newlib.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-obj/newlib/c6x-elf/be/newlib/targ-include/_newlib_version.h"
1 3 4
# 15
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-obj/newlib/c6x-elf/be/newlib/targ-include/newlib.h"
2 3 4
# 11
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/_ansi.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/config.h"
1 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/ieeefp.h"
1 3 4
# 5
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/config.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/features.h"
1 3 4
# 6
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/config.h"
2 3 4
# 12
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/_ansi.h"
2 3 4
# 14
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
1 3 4
# 143
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
typedef int ptrdiff_t;
# 209
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
typedef unsigned int size_t;
# 321
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
typedef int wchar_t;
# 415
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
typedef struct {
long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
long double __max_align_ld __attribute__((__aligned__(__alignof__(long
double))));
# 426
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
} max_align_t;
# 15
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
1 3 4
# 24
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
1 3 4
# 350
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
3 4
typedef unsigned int wint_t;
# 25
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_types.h"
1 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
1 3 4
# 41
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
# 55
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef short int __int16_t;
typedef short unsigned int __uint16_t;
# 77
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef long int __int32_t;
typedef long unsigned int __uint32_t;
# 103
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef long long int __int64_t;
typedef long long unsigned int __uint64_t;
# 134
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef signed char __int_least8_t;
typedef unsigned char __uint_least8_t;
# 160
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef short int __int_least16_t;
typedef short unsigned int __uint_least16_t;
# 182
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef long int __int_least32_t;
typedef long unsigned int __uint_least32_t;
# 200
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef long long int __int_least64_t;
typedef long long unsigned int __uint_least64_t;
# 214
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_default_types.h"
3 4
typedef long long int __intmax_t;
typedef long long unsigned int __uintmax_t;
typedef int __intptr_t;
typedef unsigned int __uintptr_t;
# 8
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_types.h"
2 3 4
# 28
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
2 3 4
typedef long __blkcnt_t;
typedef long __blksize_t;
typedef __uint64_t __fsblkcnt_t;
typedef __uint32_t __fsfilcnt_t;
typedef long _off_t;
typedef int __pid_t;
typedef short __dev_t;
typedef unsigned short __uid_t;
typedef unsigned short __gid_t;
typedef __uint32_t __id_t;
typedef unsigned short __ino_t;
# 90
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
3 4
typedef __uint32_t __mode_t;
__extension__ typedef long long _off64_t;
typedef _off_t __off_t;
typedef _off64_t __loff_t;
typedef long __key_t;
typedef long _fpos_t;
# 131
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
3 4
typedef unsigned int __size_t;
# 147
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
3 4
typedef signed int _ssize_t;
# 158
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_types.h"
3 4
typedef _ssize_t __ssize_t;
typedef struct
{
int __count;
union
{
wint_t __wch;
unsigned char __wchb[4];
} __value;
} _mbstate_t;
typedef void *_iconv_t;
typedef unsigned long __clock_t;
typedef __int_least64_t __time_t;
typedef unsigned long __clockid_t;
typedef unsigned long __timer_t;
typedef __uint8_t __sa_family_t;
typedef __uint32_t __socklen_t;
typedef int __nl_item;
typedef unsigned short __nlink_t;
typedef long __suseconds_t;
typedef unsigned long __useconds_t;
typedef __builtin_va_list __va_list;
# 16
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
2 3 4
typedef unsigned long __ULong;
# 34
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/lock.h"
1 3 4
# 11
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/lock.h"
3 4
typedef int _LOCK_T;
typedef int _LOCK_RECURSIVE_T;
# 35
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
2 3 4
typedef _LOCK_RECURSIVE_T _flock_t;
struct _reent;
struct __locale_t;
struct _Bigint
{
struct _Bigint *_next;
int _k, _maxwds, _sign, _wds;
__ULong _x[1];
};
struct __tm
{
int __tm_sec;
int __tm_min;
int __tm_hour;
int __tm_mday;
int __tm_mon;
int __tm_year;
int __tm_wday;
int __tm_yday;
int __tm_isdst;
};
struct _on_exit_args {
void * _fnargs[32];
void * _dso_handle[32];
__ULong _fntypes;
__ULong _is_cxa;
};
# 98
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
struct _atexit {
struct _atexit *_next;
int _ind;
void (*_fns[32])(void);
struct _on_exit_args _on_exit_args;
};
# 122
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
struct __sbuf {
unsigned char *_base;
int _size;
};
# 186
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
struct __sFILE {
unsigned char *_p;
int _r;
int _w;
short _flags;
short _file;
struct __sbuf _bf;
int _lbfsize;
void * _cookie;
int (*_read) (struct _reent *, void *,
char *, int);
int (*_write) (struct _reent *, void *,
const char *,
int);
_fpos_t (*_seek) (struct _reent *, void *, _fpos_t, int);
int (*_close) (struct _reent *, void *);
struct __sbuf _ub;
unsigned char *_up;
int _ur;
unsigned char _ubuf[3];
unsigned char _nbuf[1];
struct __sbuf _lb;
int _blksize;
_off_t _offset;
struct _reent *_data;
_flock_t _lock;
_mbstate_t _mbstate;
int _flags2;
};
# 292
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
typedef struct __sFILE __FILE;
struct _glue
{
struct _glue *_next;
int _niobs;
__FILE *_iobs;
};
# 324
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
struct _rand48 {
unsigned short _seed[3];
unsigned short _mult[3];
unsigned short _add;
};
# 613
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
struct _reent
{
int _errno;
__FILE *_stdin, *_stdout, *_stderr;
int _inc;
char _emergency[25];
int _unspecified_locale_info;
struct __locale_t *_locale;
int __sdidinit;
void (*__cleanup) (struct _reent *);
struct _Bigint *_result;
int _result_k;
struct _Bigint *_p5s;
struct _Bigint **_freelist;
int _cvtlen;
char *_cvtbuf;
union
{
struct
{
unsigned int _unused_rand;
char * _strtok_last;
char _asctime_buf[26];
struct __tm _localtime_buf;
int _gamma_signgam;
__extension__ unsigned long long _rand_next;
struct _rand48 _r48;
_mbstate_t _mblen_state;
_mbstate_t _mbtowc_state;
_mbstate_t _wctomb_state;
char _l64a_buf[8];
char _signal_buf[24];
int _getdate_err;
_mbstate_t _mbrlen_state;
_mbstate_t _mbrtowc_state;
_mbstate_t _mbsrtowcs_state;
_mbstate_t _wcrtomb_state;
_mbstate_t _wcsrtombs_state;
int _h_errno;
} _reent;
struct
{
unsigned char * _nextf[30];
unsigned int _nmalloc[30];
} _unused;
} _new;
struct _atexit *_atexit;
struct _atexit _atexit0;
void (**_sig_func)(int);
struct _glue __sglue;
__FILE __sf[3];
};
# 819
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/reent.h"
3 4
extern struct _reent *_impure_ptr ;
extern struct _reent *const _global_impure_ptr ;
void _reclaim_reent (struct _reent *);
# 12
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/errno.h"
2 3 4
extern int *__errno (void);
extern const char * const _sys_errlist[];
extern int _sys_nerr;
# 10
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/errno.h"
2 3 4
# 11
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/argz.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
1 3 4
# 21
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/cdefs.h"
1 3 4
# 47
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/cdefs.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
1 3 4
# 48
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/cdefs.h"
2 3 4
# 22
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;
typedef __intptr_t register_t;
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_stdint.h"
1 3 4
# 20
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_stdint.h"
3 4
typedef __int8_t int8_t ;
typedef __uint8_t uint8_t ;
typedef __int16_t int16_t ;
typedef __uint16_t uint16_t ;
typedef __int32_t int32_t ;
typedef __uint32_t uint32_t ;
typedef __int64_t int64_t ;
typedef __uint64_t uint64_t ;
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
typedef __intptr_t intptr_t;
typedef __uintptr_t uintptr_t;
# 47
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/endian.h"
1 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/_endian.h"
1 3 4
# 7
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/endian.h"
2 3 4
# 50
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
1 3 4
# 14
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_sigset.h"
1 3 4
# 41
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_sigset.h"
3 4
typedef unsigned long __sigset_t;
# 15
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_timeval.h"
1 3 4
# 37
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_timeval.h"
3 4
typedef __suseconds_t suseconds_t;
typedef __int_least64_t time_t;
# 54
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_timeval.h"
3 4
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
# 16
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/timespec.h"
1 3 4
# 38
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/timespec.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_timespec.h"
1 3 4
# 47
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_timespec.h"
3 4
struct timespec {
time_t tv_sec;
long tv_nsec;
};
# 39
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/timespec.h"
2 3 4
# 58
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/timespec.h"
3 4
struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
};
# 17
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
2 3 4
typedef __sigset_t sigset_t;
# 34
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
3 4
typedef unsigned long __fd_mask;
typedef __fd_mask fd_mask;
# 48
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
3 4
typedef struct fd_set {
__fd_mask __fds_bits[(((64) + ((((int)sizeof(__fd_mask) * 8)) - 1)) /
(((int)sizeof(__fd_mask) * 8)))];
} fd_set;
# 74
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/select.h"
3 4
int select (int __n, fd_set *__readfds, fd_set *__writefds, fd_set
*__exceptfds, struct timeval *__timeout)
;
int pselect (int __n, fd_set *__readfds, fd_set *__writefds, fd_set
*__exceptfds, const struct timespec *__timeout, const sigset_t *__set)
;
# 51
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
typedef __uint32_t in_addr_t;
typedef __uint16_t in_port_t;
typedef __uintptr_t u_register_t;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef __blkcnt_t blkcnt_t;
typedef __blksize_t blksize_t;
typedef unsigned long clock_t;
# 119
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
3 4
typedef long daddr_t;
typedef char * caddr_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
typedef __id_t id_t;
typedef __ino_t ino_t;
# 157
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
3 4
typedef __off_t off_t;
typedef __dev_t dev_t;
typedef __uid_t uid_t;
typedef __gid_t gid_t;
typedef __pid_t pid_t;
typedef __key_t key_t;
typedef _ssize_t ssize_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __clockid_t clockid_t;
typedef __timer_t timer_t;
typedef __useconds_t useconds_t;
# 220
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
3 4
typedef __int64_t sbintime_t;
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
1 3 4
# 23
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/sched.h"
1 3 4
# 48
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/sched.h"
3 4
struct sched_param {
int sched_priority;
# 61
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/sched.h"
3 4
};
# 24
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
2 3 4
# 32
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
3 4
typedef __uint32_t pthread_t;
# 61
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
3 4
typedef struct {
int is_initialized;
void *stackaddr;
int stacksize;
int contentionscope;
int inheritsched;
int schedpolicy;
struct sched_param schedparam;
int detachstate;
} pthread_attr_t;
# 154
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
3 4
typedef __uint32_t pthread_mutex_t;
typedef struct {
int is_initialized;
# 168
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_pthreadtypes.h"
3 4
int recursive;
} pthread_mutexattr_t;
typedef __uint32_t pthread_cond_t;
typedef struct {
int is_initialized;
clock_t clock;
} pthread_condattr_t;
typedef __uint32_t pthread_key_t;
typedef struct {
int is_initialized;
int init_executed;
} pthread_once_t;
# 224
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/types.h"
1 3 4
# 225
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/types.h"
2 3 4
# 12
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/argz.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/_ansi.h"
1 3 4
# 14
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/argz.h"
2 3 4
error_t argz_create (char *const argv[], char **argz, size_t *argz_len);
error_t argz_create_sep (const char *string, int sep, char **argz, size_t
*argz_len);
size_t argz_count (const char *argz, size_t argz_len);
void argz_extract (char *argz, size_t argz_len, char **argv);
void argz_stringify (char *argz, size_t argz_len, int sep);
error_t argz_add (char **argz, size_t *argz_len, const char *str);
error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep);
error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t
buf_len);
error_t argz_delete (char **argz, size_t *argz_len, char *entry);
error_t argz_insert (char **argz, size_t *argz_len, char *before, const char
*entry);
char * argz_next (char *argz, size_t argz_len, const char *entry);
error_t argz_replace (char **argz, size_t *argz_len, const char *str, const
char *with, unsigned *replace_count);
# 8 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c" 2
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
1 3 4
# 17
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
1 3 4
# 18
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_locale.h"
1 3 4
# 9
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/_locale.h"
3 4
struct __locale_t;
typedef struct __locale_t *locale_t;
# 21
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/strings.h"
1 3 4
# 44
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/strings.h"
3 4
int bcmp(const void *, const void *, size_t) __attribute__((__pure__));
void bcopy(const void *, void *, size_t);
void bzero(void *, size_t);
void explicit_bzero(void *, size_t);
int ffs(int) __attribute__((__const__));
int ffsl(long) __attribute__((__const__));
int ffsll(long long) __attribute__((__const__));
int fls(int) __attribute__((__const__));
int flsl(long) __attribute__((__const__));
int flsll(long long) __attribute__((__const__));
char *index(const char *, int) __attribute__((__pure__));
char *rindex(const char *, int) __attribute__((__pure__));
int strcasecmp(const char *, const char *) __attribute__((__pure__));
int strncasecmp(const char *, const char *, size_t) __attribute__((__pure__));
int strcasecmp_l (const char *, const char *, locale_t);
int strncasecmp_l (const char *, const char *, size_t, locale_t);
# 25
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
2 3 4
void * memchr (const void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void * memcpy (void *restrict, const void *restrict, size_t);
void * memmove (void *, const void *, size_t);
void * memset (void *, int, size_t);
char *strcat (char *restrict, const char *restrict);
char *strchr (const char *, int);
int strcmp (const char *, const char *);
int strcoll (const char *, const char *);
char *strcpy (char *restrict, const char *restrict);
size_t strcspn (const char *, const char *);
char *strerror (int);
size_t strlen (const char *);
char *strncat (char *restrict, const char *restrict, size_t);
int strncmp (const char *, const char *, size_t);
char *strncpy (char *restrict, const char *restrict, size_t);
char *strpbrk (const char *, const char *);
char *strrchr (const char *, int);
size_t strspn (const char *, const char *);
char *strstr (const char *, const char *);
char *strtok (char *restrict, const char *restrict);
size_t strxfrm (char *restrict, const char *restrict, size_t);
int strcoll_l (const char *, const char *, locale_t);
char *strerror_l (int, locale_t);
size_t strxfrm_l (char *restrict, const char *restrict, size_t, locale_t);
char *strtok_r (char *restrict, const char *restrict, char **restrict);
int timingsafe_bcmp (const void *, const void *, size_t);
int timingsafe_memcmp (const void *, const void *, size_t);
void * memccpy (void *restrict, const void *restrict, int, size_t);
# 76
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
3 4
char *stpcpy (char *restrict, const char *restrict);
char *stpncpy (char *restrict, const char *restrict, size_t);
char *strdup (const char *) __attribute__((__malloc__))
__attribute__((__warn_unused_result__));
char *_strdup_r (struct _reent *, const char *);
char *strndup (const char *, size_t) __attribute__((__malloc__))
__attribute__((__warn_unused_result__));
char *_strndup_r (struct _reent *, const char *, size_t);
# 100
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
3 4
int strerror_r (int, char *, size_t)
__asm__ ("" "__xpg_strerror_r")
;
char * _strerror_r (struct _reent *, int, int, int *);
size_t strlcat (char *, const char *, size_t);
size_t strlcpy (char *, const char *, size_t);
size_t strnlen (const char *, size_t);
char *strsep (char **, const char *);
char *strnstr(const char *, const char *, size_t) __attribute__((__pure__));
char *strlwr (char *);
char *strupr (char *);
char *strsignal (int __signo);
# 175
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/sys/string.h"
1 3 4
# 176
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/string.h"
2 3 4
# 11 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c" 2
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
1 3 4
# 16
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/c6x-elf-installed/lib/gcc/c6x-elf/12.0.0/include/stddef.h"
1 3 4
# 17
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/machine/stdlib.h"
1 3 4
# 21
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
2 3 4
# 1
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/alloca.h"
1 3 4
# 23
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
2 3 4
# 33
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long quot;
long rem;
} ldiv_t;
typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
typedef int (*__compar_fn_t) (const void *, const void *);
int __locale_mb_cur_max (void);
void abort (void) __attribute__ ((__noreturn__));
int abs (int);
__uint32_t arc4random (void);
__uint32_t arc4random_uniform (__uint32_t);
void arc4random_buf (void *, size_t);
int atexit (void (*__func)(void));
double atof (const char *__nptr);
float atoff (const char *__nptr);
int atoi (const char *__nptr);
int _atoi_r (struct _reent *, const char *__nptr);
long atol (const char *__nptr);
long _atol_r (struct _reent *, const char *__nptr);
void * bsearch (const void *__key,
const void *__base,
size_t __nmemb,
size_t __size,
__compar_fn_t _compar);
void *calloc(size_t, size_t) __attribute__((__malloc__))
__attribute__((__warn_unused_result__))
__attribute__((__alloc_size__(1, 2))) ;
div_t div (int __numer, int __denom);
void exit (int __status) __attribute__ ((__noreturn__));
void free (void *) ;
char * getenv (const char *__string);
char * _getenv_r (struct _reent *, const char *__string);
char * _findenv (const char *, int *);
char * _findenv_r (struct _reent *, const char *, int *);
extern char *suboptarg;
int getsubopt (char **, char * const *, char **);
long labs (long);
ldiv_t ldiv (long __numer, long __denom);
void *malloc(size_t) __attribute__((__malloc__))
__attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(1))) ;
int mblen (const char *, size_t);
int _mblen_r (struct _reent *, const char *, size_t, _mbstate_t *);
int mbtowc (wchar_t *restrict, const char *restrict, size_t);
int _mbtowc_r (struct _reent *, wchar_t *restrict, const char *restrict,
size_t, _mbstate_t *);
int wctomb (char *, wchar_t);
int _wctomb_r (struct _reent *, char *, wchar_t, _mbstate_t *);
size_t mbstowcs (wchar_t *restrict, const char *restrict, size_t);
size_t _mbstowcs_r (struct _reent *, wchar_t *restrict, const char *restrict,
size_t, _mbstate_t *);
size_t wcstombs (char *restrict, const wchar_t *restrict, size_t);
size_t _wcstombs_r (struct _reent *, char *restrict, const wchar_t *restrict,
size_t, _mbstate_t *);
char * mkdtemp (char *);
int mkstemp (char *);
int mkstemps (char *, int);
char * mktemp (char *) __attribute__ ((__deprecated__("the use of `mktemp' is
dangerous; use `mkstemp' instead")));
char * _mkdtemp_r (struct _reent *, char *);
int _mkostemp_r (struct _reent *, char *, int);
int _mkostemps_r (struct _reent *, char *, int, int);
int _mkstemp_r (struct _reent *, char *);
int _mkstemps_r (struct _reent *, char *, int);
char * _mktemp_r (struct _reent *, char *) __attribute__ ((__deprecated__("the
use of `mktemp' is dangerous; use `mkstemp' instead")));
void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t _compar);
int rand (void);
void *realloc(void *, size_t) __attribute__((__warn_unused_result__))
__attribute__((__alloc_size__(2))) ;
void *reallocarray(void *, size_t, size_t)
__attribute__((__warn_unused_result__)) __attribute__((__alloc_size__(2, 3)));
void *reallocf(void *, size_t) __attribute__((__warn_unused_result__))
__attribute__((__alloc_size__(2)));
char * realpath (const char *restrict path, char *restrict resolved_path);
int rpmatch (const char *response);
void srand (unsigned __seed);
double strtod (const char *restrict __n, char **restrict __end_PTR);
double _strtod_r (struct _reent *,const char *restrict __n, char **restrict
__end_PTR);
float strtof (const char *restrict __n, char **restrict __end_PTR);
long strtol (const char *restrict __n, char **restrict __end_PTR, int __base);
long _strtol_r (struct _reent *,const char *restrict __n, char **restrict
__end_PTR, int __base);
unsigned long strtoul (const char *restrict __n, char **restrict __end_PTR, int
__base);
unsigned long _strtoul_r (struct _reent *,const char *restrict __n, char
**restrict __end_PTR, int __base);
# 191
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
int system (const char *__string);
long a64l (const char *__input);
char * l64a (long __input);
char * _l64a_r (struct _reent *,long __input);
int on_exit (void (*__func)(int, void *),void *__arg);
void _Exit (int __status) __attribute__ ((__noreturn__));
int putenv (char *__string);
int _putenv_r (struct _reent *, char *__string);
void * _reallocf_r (struct _reent *, void *, size_t);
int setenv (const char *__string, const char *__value, int __overwrite);
int _setenv_r (struct _reent *, const char *__string, const char *__value, int
__overwrite);
# 224
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
char * __itoa (int, char *, int);
char * __utoa (unsigned, char *, int);
char * itoa (int, char *, int);
char * utoa (unsigned, char *, int);
int rand_r (unsigned *__seed);
double drand48 (void);
double _drand48_r (struct _reent *);
double erand48 (unsigned short [3]);
double _erand48_r (struct _reent *, unsigned short [3]);
long jrand48 (unsigned short [3]);
long _jrand48_r (struct _reent *, unsigned short [3]);
void lcong48 (unsigned short [7]);
void _lcong48_r (struct _reent *, unsigned short [7]);
long lrand48 (void);
long _lrand48_r (struct _reent *);
long mrand48 (void);
long _mrand48_r (struct _reent *);
long nrand48 (unsigned short [3]);
long _nrand48_r (struct _reent *, unsigned short [3]);
unsigned short *
seed48 (unsigned short [3]);
unsigned short *
_seed48_r (struct _reent *, unsigned short [3]);
void srand48 (long);
void _srand48_r (struct _reent *, long);
char * initstate (unsigned, char *, size_t);
long random (void);
char * setstate (char *);
void srandom (unsigned);
long long atoll (const char *__nptr);
long long _atoll_r (struct _reent *, const char *__nptr);
long long llabs (long long);
lldiv_t lldiv (long long __numer, long long __denom);
long long strtoll (const char *restrict __n, char **restrict __end_PTR, int
__base);
long long _strtoll_r (struct _reent *, const char *restrict __n, char
**restrict __end_PTR, int __base);
unsigned long long strtoull (const char *restrict __n, char **restrict
__end_PTR, int __base);
unsigned long long _strtoull_r (struct _reent *, const char *restrict __n, char
**restrict __end_PTR, int __base);
void cfree (void *);
int unsetenv (const char *__string);
int _unsetenv_r (struct _reent *, const char *__string);
int posix_memalign (void **, size_t, size_t) __attribute__((__nonnull__ (1)))
__attribute__((__warn_unused_result__));
char * _dtoa_r (struct _reent *, double, int, int, int *, int*, char**);
void * _malloc_r (struct _reent *, size_t) ;
void * _calloc_r (struct _reent *, size_t, size_t) ;
void _free_r (struct _reent *, void *) ;
void * _realloc_r (struct _reent *, void *, size_t) ;
void _mstats_r (struct _reent *, char *);
int _system_r (struct _reent *, const char *);
void __eprintf (const char *, const char *, unsigned int, const char *);
# 312
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
void qsort_r (void *__base, size_t __nmemb, size_t __size, void *__thunk, int
(*_compar)(void *, const void *, const void *))
__asm__ ("" "__bsd_qsort_r");
# 322
"/home/jlaw/jenkins/workspace/c6x-elf/newlib-cygwin/newlib/libc/include/stdlib.h"
3 4
extern long double _strtold_r (struct _reent *, const char *restrict, char
**restrict);
extern long double strtold (const char *restrict, char **restrict);
void * aligned_alloc(size_t, size_t) __attribute__((__malloc__))
__attribute__((__alloc_align__(1)))
__attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__));
int at_quick_exit(void (*)(void));
_Noreturn void
quick_exit(int);
# 12 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c" 2
# 13 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c"
error_t
argz_append (char **argz,
size_t *argz_len,
const char *buf,
size_t buf_len)
{
if (buf_len)
{
size_t last = *argz_len;
*argz_len += buf_len;
if(!(*argz = (char *)realloc(*argz, *argz_len)))
return
# 26 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c" 3 4
12
# 26 "../../../../../../..//newlib-cygwin/newlib/libc/argz/argz_append.c"
;
memcpy(*argz + last, buf, buf_len);
}
return 0;
}