4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-25 16:47:20 +08:00
Jeff Law 5e79655f38 Fix most of m32r libgloss for c99/gcc-14
Make implicit its explicit, add missing prototypes and header includes.  This
does not fix m32r-stub.c which needs more than the trivial work that Jeff J has
pre-approved.
2023-12-22 21:21:52 -07:00

39 lines
855 B
C

#include <sys/types.h>
#include <sys/stat.h>
#include "syscall.h"
#include "eit.h"
#include <stdlib.h>
extern int _write (int, char *, int);
caddr_t
_sbrk (int incr)
{
/* `_end' is defined in the linker script.
We must handle it carefully as we don't want the compiler to think
it lives in the small data area. Use medium model to ensure 32 bit
addressability. */
extern char _end __attribute__ ((__model__(__medium__)));
static char *heap_end;
char *prev_heap_end;
char *sp = (char *)&sp;
if (heap_end == 0)
{
heap_end = &_end;
}
prev_heap_end = heap_end;
if (heap_end > sp)
{
_write (1, "Heap and stack collision\n", 25);
#if 0 /* Calling abort brings in the signal handling code. */
abort ();
#else
exit (1);
#endif
}
heap_end += incr;
return (caddr_t) prev_heap_end;
}