1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-07 21:10:15 +00:00
cc65/test/ref/cc65090726.c

49 lines
931 B
C
Raw Normal View History

2014-09-24 14:45:10 +00:00
/*
!!DESCRIPTION!!
!!ORIGIN!! testsuite
!!LICENCE!! Public Domain
!!AUTHOR!!
*/
#include "common.h"
2014-09-24 14:45:10 +00:00
struct Record {
struct Record *PtrComp;
int x;
};
typedef struct Record RecordType;
typedef RecordType *RecordPtr;
void Proc3(RecordPtr *PtrParOut)
{
2019-02-12 21:50:49 +00:00
/* whatever */
2014-09-24 14:45:10 +00:00
}
void Proc1(RecordPtr PtrParIn)
{
#define NextRecord (*(PtrParIn->PtrComp))
2019-02-12 21:50:49 +00:00
Proc3((RecordPtr *)NextRecord.PtrComp);
Proc3(&NextRecord.PtrComp);
Proc3(&PtrParIn->PtrComp->PtrComp);
2014-09-24 14:45:10 +00:00
#ifdef CAST_STRUCT_PTR
2019-02-12 21:50:49 +00:00
Proc3((RecordPtr *) PtrParIn->PtrComp->PtrComp);
Proc3((RecordPtr *) (*(PtrParIn->PtrComp)).PtrComp);
Proc3((RecordPtr *) NextRecord.PtrComp);
2014-09-24 14:45:10 +00:00
#else
2019-02-12 21:50:49 +00:00
Proc3(PtrParIn->PtrComp->PtrComp);
Proc3((*(PtrParIn->PtrComp)).PtrComp);
Proc3(NextRecord.PtrComp);
2014-09-24 14:45:10 +00:00
#endif
2019-02-12 21:50:49 +00:00
2014-09-24 14:45:10 +00:00
#undef NextRecord
}
int main(void)
{
printf("it works :)\n");
return 0;
}