Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_FS_1_19910112
-
c/kcc5/tizers.c
There is 1 other file named tizers.c in the archive. Click here to see a list.
/* TESTIZ - Test constants and initializers.
** This file tries all possible types of permitted data initializations
** in order to exercise the KCC code which (a) checks for legality in
** CCDECL, and (b) generates the output in CCGEN.
*/
/* Various constants */
int coni1 = 123456789; /* Decimal constant, type int */
int coni2 = 01234567; /* Octal constant, type int */
int coni3 = 0x1aBcDeF; /* Hex constant, type int */
long con1 = 0L; /* Long decimal */
long con2 = 0777777777777; /* 36 bits of ones */
float conf = 0. + .0 + 1.0 + 3e1 /* Various types of float constants */
+ 1.0e-3 + .00034 + 3.14159 + 1e-3 + 2e+9;
char conch = 'A' + '\040'; /* Char constants */
char *constr = "String constant: \n\t\b\r\f\v\\\'\" and \1 \0111 \080";
/* Arithmetic data types */
char ca = 1, cb = -1;
signed char sca = 1, scb = -1;
signed short ssa = 1, ssb = -1;
signed int sia = 1, sib = -1;
signed long sla = 1, slb = -1;
unsigned char uca = 1, ucb = -1;
unsigned short usa = 1, usb = -1;
unsigned int uia = 1, uib = -1;
unsigned long ula = 1, ulb = -1;
int sic = 123, sid = {100 * 2 };
float fl1 = 12.3, fl2 = 12;
double dbl = {12.3};
long double lda = 12.3456789;
/* KCC extended char types */
signed _KCCtype_char6 sc6a = 1, sc6b = -1;
signed _KCCtype_char7 sc7a = 1, sc7b = -1;
signed _KCCtype_char8 sc8a = 1, sc8b = -1;
signed _KCCtype_char9 sc9a = 1, sc9b = -1;
signed _KCCtype_char18 sc18a = 1, sc18b = -1;
unsigned _KCCtype_char6 uc6a = 1, uc6b = -1;
unsigned _KCCtype_char7 uc7a = 1, uc7b = -1;
unsigned _KCCtype_char8 uc8a = 1, uc8b = -1;
unsigned _KCCtype_char9 uc9a = 1, uc9b = -1;
unsigned _KCCtype_char18 uc18a = 1, uc18b = -1;
_KCCtype_char6 str6a[] = "sixbit";
_KCCtype_char6 *str6p = "sixbit";
_KCCtype_char7 str7a[] = "asciz";
_KCCtype_char7 *str7p = "asciz";
_KCCtype_char8 str8a[] = "bytez";
_KCCtype_char8 *str8p = "bytez";
/* Pointers */
/* 1 */ char *cp = 0;
/* 2 */ extern int foo(); static int (*fp)() = foo;
/* 3 */ char ary[100]; char *cp2 = ary;
/* 4 */ static short sh; short *sp = &sh;
/* 5 */ float popi[10]; float *psq = &popi[2];
/* 6 */ long *PSW = (long *) 0xFFFFFFF0;
/* 7 */ char *greet = "This is a test";
/* 8 */ int bar; int *ip = &bar + 3, *ip2 = &bar - 3;
/* 9 */ int bara[3][4]; int *ip3 = &bara[1][2];
/* 10 */ char *lcp = &"string"[2];
rtn()
{
return bara[1][2];
}
/* Arrays */
int aryone[4] = {0,1,2,3,};
int arytwo[4][2][3] =
{{{ 0, 1, 2}, { 3, 4, 5,}}, /* Note trailing comma */
{{ 6, 7, 8}, { 9,10,11,},}, /* Note trailing commas */
{{12,13,14}, {15,16,17}},
{{18,19,20}, {21,22,23}}};
struct ast {int a; float b;}
arythree[3] = {{1, 2.5},{2,3.9},{0,-4.0}};
int aryfour[5] = {1,2,3};
int aryfive[3][3] = {{1,2,}, {3}};
int arysix[] = {0,1,2,3,4,5};
char arysev[5] = "ABCD";
char aryate[] = "ABCDEF";
char *arycps[] = {"one", "two", "three"};
struct S1 {int a;
struct S2 {double b; char c;} b;
int c[4]; };
struct S1 strx = {1, {4.5}};
/* Eliding braces */
int arymat[2][3] = {1,2,3,4,5,6};
/* Special hackery case -- inner char array initialized by string */
struct cstruc {
char a; int b; char ca[3]; int d; /* 4 wds */
char cam[3][4][5]; /* 017 wds */
} outca[3] = { {1, 2, "ab", 4} }; /* 023 wds per struct */
/* Complicated addresses */
char *cptr = &outca[2].ca[1];
char *cptr2 = &outca[2].cam[1][2][3];
char *cptr3 = outca[2].cam[1][2];
char *cptr4 = &((&outca[0])->ca[1]);
/* Handle casts of addrs */
char *captr = (char *)outca;
long *lcaptr = (long *)outca;
main(){}