4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-02 20:40:24 +08:00
Jozef Lawrynowicz 027cfa4720 Fix warnings when building for msp430-elf
The MSP430 target supports both 16-bit and 20-bit size_t and intptr_t.
Some implicit casts in Newlib expect these types to be
"long", (a 32-bit type on MSP430) which causes warnings during
compilation such as:
  "cast from pointer to integer of different size"
2020-10-14 10:54:30 -04:00

37 lines
1.2 KiB
C

/* Copyright (c) 2013 Red Hat, Inc. All rights reserved.
This copyrighted material is made available to anyone wishing to use, modify,
copy, or redistribute it subject to the terms and conditions of the BSD
License. This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. A copy of this license
is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
are incorporated in the source code or documentation are not subject to the BSD
License and may only be used or replicated with the express permission of
Red Hat, Inc.
*/
int write (int fd, const char *buf, int len);
void abort (void);
char *
_sbrk (int adj)
{
extern char end[]; /* Defined in the linker script. */
static char * heap = end;
char * rv = heap;
char * sp = (char *) & sp; /* Stack grows down, heap grows up... */
if (heap + adj > sp)
{
#define MESSAGE "Heap and stack collision\n"
write (1, MESSAGE, sizeof MESSAGE);
abort ();
}
heap += adj;
return rv;
}
char * sbrk (int) __attribute__((weak, alias ("_sbrk")));