2 * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
4 * This file is part of libFirm.
6 * This file may be distributed and/or modified under the terms of the
7 * GNU General Public License version 2 as published by the Free Software
8 * Foundation and appearing in the file LICENSE.GPL included in the
9 * packaging of this file.
11 * Licensees holding valid libFirm Professional Edition licenses may use
12 * this file in accordance with the libFirm Commercial License.
13 * Agreement provided with the Software.
15 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * @brief implementation of xmalloc & friends
23 * @author Markus Armbruster
26 /* @@@ ToDo: replace this file with the one from liberty.
27 [reimplement xstrdup, ... ] */
37 static NORETURN xnomem(void)
39 /* Do not use panic() here, because it might try to allocate memory! */
40 fputs("out of memory", stderr);
44 void *xmalloc(size_t size)
46 void *res = malloc(size);
52 void *xrealloc(void *ptr, size_t size)
54 /* ANSI blesses realloc (0, x) but SunOS chokes on it */
55 void *res = ptr ? realloc (ptr, size) : malloc (size);
61 char *xstrdup(const char *str)
63 size_t len = strlen (str) + 1;
64 return (char*) memcpy(xmalloc(len), str, len);