diff --git a/src/program.c b/src/program.c index ef1c15be0585a40b48cd5581fbc0a77ae78618a9..9ad51d007fa4eff06b4894107f89b18b76dd73b3 100644 --- a/src/program.c +++ b/src/program.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: program.c,v 1.68 1998/04/06 04:31:32 hubbe Exp $"); +RCSID("$Id: program.c,v 1.69 1998/04/06 10:02:52 hubbe Exp $"); #include "program.h" #include "object.h" #include "dynamic_buffer.h" @@ -734,6 +734,14 @@ if((char *)(p->X) < (char *)p || (char *)(p->X)> ((char *)p)+size) fatal("Progra if(p->identifiers[e].run_time_type!=T_MIXED) check_type(p->identifiers[e].run_time_type); + + if(IDENTIFIER_IS_VARIABLE(p->identifiers[e].identifier_flags)) + { + if(p->identifiers[e].offset & (sizeof(char *)-1)) + { + fatal("Variable offset is not properly aligned (%s).\n",p->identifers[e].name->str); + } + } } for(e=0;e<(int)p->num_identifier_references;e++)