mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
Test case for accessing nested struct fields
Currently fails.
This commit is contained in:
parent
ec128ffeee
commit
e9c24dbf1c
3 changed files with 64 additions and 0 deletions
|
@ -47,6 +47,7 @@ test_progs_dat=\
|
|||
structarray.dat \
|
||||
structlive.dat \
|
||||
structptr.dat \
|
||||
structstruct.dat \
|
||||
swap.dat \
|
||||
triangle.dat \
|
||||
vecexpr.dat \
|
||||
|
@ -236,6 +237,15 @@ structptr.run: Makefile build-run
|
|||
include ./$(DEPDIR)/structptr.Qo # am--include-marker
|
||||
r_depfiles_remade += ./$(DEPDIR)/structptr.Qo
|
||||
|
||||
structstruct_dat_SOURCES=structstruct.r
|
||||
structstruct_obj=$(structstruct_dat_SOURCES:.r=.qfo)
|
||||
structstruct.dat$(EXEEXT): $(structstruct_obj) $(QFCC_DEP)
|
||||
$(QFCC) $(QCFLAGS) -o $@ $(structstruct_obj)
|
||||
structstruct.run: Makefile build-run
|
||||
$(srcdir)/build-run $@
|
||||
include ./$(DEPDIR)/structstruct.Qo # am--include-marker
|
||||
r_depfiles_remade += ./$(DEPDIR)/structstruct.Qo
|
||||
|
||||
swap_dat_SOURCES=swap.r
|
||||
swap_obj=$(swap_dat_SOURCES:.r=.qfo)
|
||||
swap.dat$(EXEEXT): $(swap_obj) $(QFCC_DEP)
|
||||
|
|
53
tools/qfcc/test/structstruct.r
Normal file
53
tools/qfcc/test/structstruct.r
Normal file
|
@ -0,0 +1,53 @@
|
|||
#include "test-harness.h"
|
||||
|
||||
typedef struct Point {
|
||||
int x;
|
||||
int y;
|
||||
} Point;
|
||||
|
||||
typedef struct Size {
|
||||
int width;
|
||||
int height;
|
||||
} Size;
|
||||
|
||||
typedef struct Rect {
|
||||
Point origin;
|
||||
Size size;
|
||||
} Rect;
|
||||
|
||||
Rect rect = {{1, 2}, {3, 4}};
|
||||
|
||||
int
|
||||
test_struct_1(Rect rect)
|
||||
{
|
||||
return rect.origin.x;
|
||||
}
|
||||
|
||||
int
|
||||
test_struct_2(Rect rect)
|
||||
{
|
||||
return rect.origin.y;
|
||||
}
|
||||
|
||||
int
|
||||
test_struct_3(Rect rect)
|
||||
{
|
||||
return rect.size.width;
|
||||
}
|
||||
|
||||
int
|
||||
test_struct_4(Rect rect)
|
||||
{
|
||||
return rect.size.height;
|
||||
}
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
int ret = 0;
|
||||
ret |= test_struct_1(rect) != 1;
|
||||
ret |= test_struct_2(rect) != 2;
|
||||
ret |= test_struct_3(rect) != 3;
|
||||
ret |= test_struct_4(rect) != 4;
|
||||
return ret;
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
void *obj_malloc (int size) = #0;
|
||||
void printf (string fmt, ...) = #0;
|
||||
int errno (void) = #0;
|
||||
string strerror (int err) = #0;
|
||||
|
|
Loading…
Reference in a new issue