1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00
cc65/test/val/cc65141022.c

58 lines
1.0 KiB
C
Raw Permalink Normal View History

2015-06-28 23:57:39 +00:00
/*
!!DESCRIPTION!! struct base address dereferencing bug
!!ORIGIN!! Testsuite
!!LICENCE!! Public Domain
*/
#include <stdlib.h>
#include <stdio.h>
struct yywork
{
char verify, advance;
} yycrank[] =
{
{0,0}
};
struct yysvf
{
struct yywork *yystoff;
2015-06-30 12:54:13 +00:00
} yysvec[1];
2015-06-28 23:57:39 +00:00
unsigned char fails = 0;
int main(int n, char **args)
{
2015-06-30 12:54:13 +00:00
struct yysvf *yystate = yysvec;
2015-06-28 23:57:39 +00:00
struct yywork *yyt;
yystate->yystoff = yycrank;
yyt = yystate->yystoff;
if(yyt == yycrank) {
printf("yyt == yycrank (ok)\n");
} else {
printf("yyt != yycrank (fail)\n");
++fails;
}
if(yyt == yystate->yystoff) {
printf("yyt == yystate->yystoff (ok)\n");
} else {
printf("yyt != yystate->yystoff (fail)\n");
++fails;
}
if(yycrank == yystate->yystoff) {
printf("yycrank == yystate->yystoff (ok)\n");
} else {
printf("yycrank != yystate->yystoff (fail)\n");
++fails;
}
printf("fails: %d\n", fails);
return fails;
}