OSDN Git Service

* allgmem.c: Do not include config.h anymore.
[pf3gnuchains/gcc-fork.git] / libchill / allocate.c
1 /* Implement runtime actions for CHILL.
2    Copyright (C) 1992,1993 Free Software Foundation, Inc.
3    Author: Wilfried Moser
4
5 This file is part of GNU CC.
6
7 GNU CC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GNU CC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU CC; see the file COPYING.  If not, write to
19 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
20
21 #define __CHILL_LIB__
22
23 #include <stdlib.h>
24 #include "rtltypes.h"
25
26 extern void __cause_ex1 (char *exname, char *file, int lineno);
27
28 /* define needed exceptions */
29 EXCEPTION (allocatefail)
30 EXCEPTION (rangefail)
31
32 /*
33  * function __allocate
34  *
35  * parameters:
36  *  size                number of bytes to allocate
37  *  filename            source file which issued the call
38  *  linenumber          line number within that source file
39  *
40  * returns:
41  *  void *
42  *
43  * exceptions:
44  *  allocatefail
45  *  rangefail
46  *
47  * abstract:
48  *  allocate memory from heap
49  *
50 */
51
52 void *
53 __allocate (size, filename, linenumber)
54      int size;
55      char *filename;
56      int   linenumber;
57 {
58   void  *tmp;
59     
60   if (size < 0)
61     __cause_ex1 ("rangefail", filename, linenumber);
62   tmp = malloc (size);
63   if (!tmp)
64     __cause_ex1 ("allocatefail", filename, linenumber);
65   return tmp;
66 }