1b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink/* Ltrace Test : parameters.c. 2b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink Objectives : Verify that Ltrace can handle all the different 3b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink parameter types 4b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink 5b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink This file was written by Steve Fink <sphink@gmail.com>. */ 6b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink 7b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <stdio.h> 8b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <unistd.h> 9b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <sys/syscall.h> 10b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <sys/stat.h> 11b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <errno.h> 12b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <string.h> 13b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink#include <stdlib.h> 14b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink 15b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkvoid func_intptr(int *i); 16b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkvoid func_intptr_ret(int *i); 17b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkint func_strlen(char*); 18b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkvoid func_strfixed(char*); 19b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkvoid func_ppp(int***); 20b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkvoid func_stringp(char**); 216fa27c330f9e07c5be553614b9c6e2f08461780fSteve Finkvoid func_short(short, short); 226fa27c330f9e07c5be553614b9c6e2f08461780fSteve Finkvoid func_ushort(unsigned short, unsigned short); 231607793a00298f9d5a857dac73de2dd6a6510725Petr Machatafloat func_float(float, float); 241607793a00298f9d5a857dac73de2dd6a6510725Petr Machatadouble func_double(double, double); 251150bc4b812f0150e832607b8724b023d6d7d575Steve Finkvoid func_arrayi(int*, int); 261150bc4b812f0150e832607b8724b023d6d7d575Steve Finkvoid func_arrayf(float*, int); 27e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Finkvoid func_struct(void*); 28b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink 296a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Finktypedef enum { 306a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink RED, 316a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink GREEN, 326a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink BLUE, 336a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink CHARTREUSE, 346a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink PETUNIA 356a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink} color_t; 366a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Finkvoid func_enum(color_t); 37e22411dd33d2d55fd5c6510390954f13fd502d3aSteve Finkvoid func_typedef(color_t); 386a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 391bcd05943ebff28c1537d61d584c7f874d963d27Petr Machatavoid func_work(char *x); 401bcd05943ebff28c1537d61d584c7f874d963d27Petr Machatavoid func_call(char *x, char *y, void (*cb)(char *)); 41280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata 421bcd05943ebff28c1537d61d584c7f874d963d27Petr Machatavoid 431bcd05943ebff28c1537d61d584c7f874d963d27Petr Machatacall_func_work (char *x) 441bcd05943ebff28c1537d61d584c7f874d963d27Petr Machata{ 451bcd05943ebff28c1537d61d584c7f874d963d27Petr Machata func_work(x); 461bcd05943ebff28c1537d61d584c7f874d963d27Petr Machata} 471bcd05943ebff28c1537d61d584c7f874d963d27Petr Machata 481bcd05943ebff28c1537d61d584c7f874d963d27Petr Machataint 49b2c254573fbf30189293be6b7f2ef307c499704cSteve Finkmain () 50b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink{ 51b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink int x = 17; 52b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink int *xP, **xPP; 53b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink char buf[200]; 54b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink char *s; 551150bc4b812f0150e832607b8724b023d6d7d575Steve Fink int *ai; 561150bc4b812f0150e832607b8724b023d6d7d575Steve Fink float *af; 576a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 58b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_intptr(&x); 596a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 60b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_intptr_ret(&x); 616a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 62b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_string("zero\0xxxxxxxxxxxxxx"); 63b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_strlen(buf); 6483b3189516cab1e42854308f151b2ce5d2dd2364Petr Machata 6583b3189516cab1e42854308f151b2ce5d2dd2364Petr Machata extern int func_arg0(char *); 6683b3189516cab1e42854308f151b2ce5d2dd2364Petr Machata func_arg0(buf); 6783b3189516cab1e42854308f151b2ce5d2dd2364Petr Machata 68b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink printf("%s\n", buf); 696a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 70b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_strfixed(buf); 71b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink printf("%s\n", buf); 726a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 73b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink x = 80; 74b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink xP = &x; 75b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink xPP = &xP; 76b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_ppp(&xPP); 776a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 78b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink s = (char*) malloc(100); 79b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink strcpy(s, "Dude"); 80b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink func_stringp(&s); 816a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink 826a3e24dc1709530e59dd6ae3e91ced1c221fe1b9Steve Fink func_enum(BLUE); 836fa27c330f9e07c5be553614b9c6e2f08461780fSteve Fink 846fa27c330f9e07c5be553614b9c6e2f08461780fSteve Fink func_short(-8, -9); 856fa27c330f9e07c5be553614b9c6e2f08461780fSteve Fink func_ushort(33, 34); 861607793a00298f9d5a857dac73de2dd6a6510725Petr Machata float f = func_float(3.4, -3.4); 871607793a00298f9d5a857dac73de2dd6a6510725Petr Machata double d = func_double(3.4, -3.4); 886fa27c330f9e07c5be553614b9c6e2f08461780fSteve Fink 89e22411dd33d2d55fd5c6510390954f13fd502d3aSteve Fink func_typedef(BLUE); 90e22411dd33d2d55fd5c6510390954f13fd502d3aSteve Fink 911150bc4b812f0150e832607b8724b023d6d7d575Steve Fink ai = (int*) calloc(sizeof(int), 8); 921150bc4b812f0150e832607b8724b023d6d7d575Steve Fink for (x = 0; x < 8; x++) 931150bc4b812f0150e832607b8724b023d6d7d575Steve Fink ai[x] = 10 + x; 941150bc4b812f0150e832607b8724b023d6d7d575Steve Fink func_arrayi(ai, 8); 951150bc4b812f0150e832607b8724b023d6d7d575Steve Fink func_arrayi(ai, 2); 961150bc4b812f0150e832607b8724b023d6d7d575Steve Fink 971150bc4b812f0150e832607b8724b023d6d7d575Steve Fink af = (float*) calloc(sizeof(float), 8); 981150bc4b812f0150e832607b8724b023d6d7d575Steve Fink for (x = 0; x < 8; x++) 991150bc4b812f0150e832607b8724b023d6d7d575Steve Fink af[x] = 10.1 + x; 1001150bc4b812f0150e832607b8724b023d6d7d575Steve Fink func_arrayf(af, 8); 1011150bc4b812f0150e832607b8724b023d6d7d575Steve Fink func_arrayf(af, 2); 1021150bc4b812f0150e832607b8724b023d6d7d575Steve Fink 103e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink { 104e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink struct { 105e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink int simple; 106e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink int alen; 107e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink int slen; 108e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink struct { int a; int b; }* array; 109e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink struct { int a; int b; } seq[3]; 110e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink char* str; 111e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink } x; 112e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 113e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.simple = 89; 114e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 115e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.alen = 2; 116e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.array = malloc(800); 117e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.array[0].a = 1; 118e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.array[0].b = 10; 119e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.array[1].a = 3; 120e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.array[1].b = 30; 121e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 122e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[0].a = 4; 123e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[0].b = 40; 124e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[1].a = 5; 125e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[1].b = 50; 126e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[2].a = 6; 127e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.seq[2].b = 60; 128e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 129e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.slen = 3; 130e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink x.str = "123junk"; 131e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 132e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink func_struct(&x); 133e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink } 134e4b3263fb2b32eb5ee0f693fc223ed8c363fbd69Steve Fink 135280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata { 136280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata char x[10] = {}; 137280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata char y[10] = {}; 1381bcd05943ebff28c1537d61d584c7f874d963d27Petr Machata func_call(x, y, call_func_work); 139280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata } 140280f829ca87ff6b6c3a242a97fcef01d4488d2c8Petr Machata 141b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S2 { 142b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata float f; 143b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char a; 144b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char b; 145b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata }; 146b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S3 { 147b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char a[6]; 148b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata float f; 149b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata }; 150b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S2 func_struct_2(int, struct S3 s3, double d); 151b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_struct_2(17, (struct S3){ "ABCDE", 0.25 }, 0.5); 152b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 153b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S4 { 154b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long a; 155b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long b; 156b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long c; 157b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long d; 158b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata }; 159b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S4 func_struct_large(struct S4 a, struct S4 b); 160b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_struct_large((struct S4){ 1, 2, 3, 4 }, (struct S4){ 5, 6, 7, 8 }); 161b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 162b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S5 { 163b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char a; 164b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char b; 165b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long c; 166b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long d; 167b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata }; 168b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S5 func_struct_large2(struct S5 a, struct S5 b); 169b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_struct_large2((struct S5){ '0', '1', 3, 4 }, (struct S5){ '2', '3', 7, 8 }); 170b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 171b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S6 { 172b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long a; 173b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long b; 174b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char c; 175b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char d; 176b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata }; 177b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata struct S6 func_struct_large3(struct S6 a, struct S6 b); 178b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_struct_large3((struct S6){ 3, 4, '0', '1' }, (struct S6){ 7, 8 ,'2', '3' }); 179b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 180b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata void func_many_args(int a, int b, long c, double d, char e, int f, float g, 181b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata char h, int i, double j, int k, double l, char m, int n, 182b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata short o, int p, char q, float r, float s, double t, 183b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata long u, float v, float w, float x, float y); 184b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata func_many_args(1, 2, 3, 4.0, '5', 6, 7.0, 185b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata '8', 9, 10.0, 11, 12.0, 'A', 14, 186b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 15, 16, 'B', 18.0, 19.0, 20.0, 187b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 21, 22.0, 23.0, 24.0, 25.0); 188b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 18951e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata void func_printf(char *format, ...); 19051e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata func_printf("sotnuh %d %ld %g %c\n", 5, 6L, 1.5, 'X'); 19151e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata func_printf("sotnuh1 %d %ld %hd\n", 5, 6L, (short)7); 19251e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata func_printf("sotnuh2 %s %10s %10s\n", "a string", "a trimmed string", "short"); 19351e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata func_printf("many_args" 194b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata "%d %d %ld %g %c %d %g " 195b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata "%c %d %g %d %g %c %d " 196b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata "%hd %d %c %g %g %g " 197b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata "%ld %g %g %g %g", 19851d85d99f3ed74c01109b1040499c3a01f68361cEdgar E. Iglesias 1, 2, 3L, 4.0, '5', 6, 7.0, 199b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata '8', 9, 10.0, 11, 12.0, 'A', 14, 200b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata (short)15, 16, 'B', 18.0, 19.0, 20.0, 201b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 21L, 22.0, 23.0, 24.0, 25.0); 202b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 20351e74aca71ff7e8be91c074afd4f2264f46294e9Petr Machata func_printf("sotnuh3 %*s\n", 4, "a trimmed string"); 204b77f778eda200e0dc1c481e2f7dc5ff322147bd7Petr Machata 2053a8a91ca57f66d664b3fbd19882e6d163c7ad496Edgar E. Iglesias void func_sprintf(char *str, char *format, ...); 2063a8a91ca57f66d664b3fbd19882e6d163c7ad496Edgar E. Iglesias func_sprintf(NULL, "test %d %d %d %d\n", 1, 2, 3, 4); 2073a8a91ca57f66d664b3fbd19882e6d163c7ad496Edgar E. Iglesias 208ce034981e2880eecb8a196c78182dfb4ae67850fPetr Machata void func_lens(int, long, short, long); 209ce034981e2880eecb8a196c78182dfb4ae67850fPetr Machata func_lens(22, 23, 24, 25); 210ce034981e2880eecb8a196c78182dfb4ae67850fPetr Machata 211e3f4a984db115979e09414b7281da98399dd8949Petr Machata int func_bool(int a, int b); 212e3f4a984db115979e09414b7281da98399dd8949Petr Machata func_bool(1, 10); 213e3f4a984db115979e09414b7281da98399dd8949Petr Machata func_bool(2, 0); 214e3f4a984db115979e09414b7281da98399dd8949Petr Machata 2150ceae2a763aee33e23808edc7bece9888c583411Petr Machata void func_hide(int a, int b, int c, int d, int e, int f, int g, int h); 2160ceae2a763aee33e23808edc7bece9888c583411Petr Machata func_hide(1, 2, 3, 4, 5, 6, 7, 8); 2170ceae2a763aee33e23808edc7bece9888c583411Petr Machata 2180ceae2a763aee33e23808edc7bece9888c583411Petr Machata struct func_hide_struct { 2190ceae2a763aee33e23808edc7bece9888c583411Petr Machata int a; int b; int c; int d; int e; int f; int g; int h; 2200ceae2a763aee33e23808edc7bece9888c583411Petr Machata }; 2210ceae2a763aee33e23808edc7bece9888c583411Petr Machata void func_hide_struct(struct func_hide_struct hs); 2220ceae2a763aee33e23808edc7bece9888c583411Petr Machata func_hide_struct((struct func_hide_struct){1, 2, 3, 4, 5, 6, 7, 8}); 223e3f4a984db115979e09414b7281da98399dd8949Petr Machata 224c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata enum ab { A, B }; 225c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata long *func_short_enums(short abs[]); 226c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata func_short_enums((short[]){ A, B, A, A }); 227c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata 228c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata long func_negative_enum(short a, unsigned short b, int c, unsigned d, 229c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata long e, unsigned long f); 230c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata func_negative_enum(-1, -1, -1, -1, -1, -1); 231c07a26a8d0f86bc4137eb7b7fea8bbf9021275f1Petr Machata 232e3f4a984db115979e09414b7281da98399dd8949Petr Machata void func_charp_string(char *p); 233e3f4a984db115979e09414b7281da98399dd8949Petr Machata func_charp_string("null-terminated string"); 234e3f4a984db115979e09414b7281da98399dd8949Petr Machata 235a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_empty {}; 236a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_empty func_struct_empty(struct struct_empty e); 237a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata func_struct_empty((struct struct_empty) {}); 238a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata 239a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size1 { char a; }; 240a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size1 func_struct_size1(struct struct_size1 e); 241a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata func_struct_size1((struct struct_size1){ '5' }); 242a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata 243a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size2 { short a; }; 244a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size2 func_struct_size2(struct struct_size2 e); 245a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata func_struct_size2((struct struct_size2){ 5 }); 246a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata 247a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size4 { int a; }; 248a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size4 func_struct_size4(struct struct_size4 e); 249a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata func_struct_size4((struct struct_size4){ 5 }); 250a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata 251a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size8 { int a; int b; }; 252a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata struct struct_size8 func_struct_size8(struct struct_size8 e); 253a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata func_struct_size8((struct struct_size8){ 5, 6 }); 254a81af7c2f7691c1eeb801b7756b13899b79d7568Petr Machata 2556fa27c330f9e07c5be553614b9c6e2f08461780fSteve Fink return 0; 256b2c254573fbf30189293be6b7f2ef307c499704cSteve Fink} 257