2 * Copyright (C) 1995-2007 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
27 /* @@@ ToDo: replace this file with the one from liberty.
28 [reimplement xstrdup, ... ] */
43 static NORETURN xnomem(void) {
44 panic("out of memory");
47 void *xmalloc(size_t size) {
48 void *res = malloc(size);
54 void *xcalloc(size_t num, size_t size) {
55 void *res = calloc(num, size);
61 void *xrealloc(void *ptr, size_t size) {
62 /* ANSI blesses realloc (0, x) but SunOS chokes on it */
63 void *res = ptr ? realloc (ptr, size) : malloc (size);
69 char *xstrdup(const char *str) {
70 size_t len = strlen (str) + 1;
71 return memcpy((xmalloc) (len), str, len);