1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-02 18:06:48 +00:00
cc65/test/val/cc65141022.c
2015-06-30 08:54:13 -04:00

58 lines
1.0 KiB
C
Executable File

/*
!!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;
} yysvec[1];
unsigned char fails = 0;
int main(int n, char **args)
{
struct yysvf *yystate = yysvec;
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;
}