--- gforth/vmgen-ex/profile.c 2002/06/02 15:46:17 1.3 +++ gforth/vmgen-ex/profile.c 2007/12/31 19:02:25 1.8 @@ -1,12 +1,12 @@ /* VM profiling support stuff - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001,2003,2007 Free Software Foundation, Inc. This file is part of Gforth. Gforth is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 + as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -15,8 +15,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + along with this program; if not, see http://www.gnu.org/licenses/. */ #include @@ -29,12 +28,18 @@ #define HASH_SIZE (1<<20) #define hash(p) ((((Cell)(p))/sizeof(Inst))&(HASH_SIZE-1)) +#ifdef __GNUC__ +typedef long long long_long; +#else +typedef long long_long; +#endif + typedef struct block_count { struct block_count *next; /* next in hash table */ struct block_count *fallthrough; /* the block that this one falls through to without SUPER_END */ Inst *ip; - long long count; + long_long count; char **insts; size_t ninsts; } block_count; @@ -63,8 +68,8 @@ block_count *block_insert(Inst *ip) new->next = blocks[hash(ip)]; new->fallthrough = NULL; new->ip = ip; - new->count = 0LL; - new->insts = malloc(0); + new->count = (long_long)0; + new->insts = malloc(1); assert(new->insts != NULL); new->ninsts = 0; blocks[hash(ip)] = new;