+++ /dev/null
-void *malloc(unsigned);
-void foundIt(void);
-
-typedef struct list {
- struct list *Next;
- int Data;
-} list;
-
-extern list ListNode1;
-list ListNode3 = { 0, 4 };
-list ListNode2 = { &ListNode3, 3 };
-list ListNode0 = { &ListNode1, 1 };
-list ListNode1 = { &ListNode2, 2 };
-
-int *ListDataPtr = &ListNode3.Data;
-
-list ListArray[10];
-
-/*
- TODO: When we have getelementptr on globals
-list *ListArrElement = ListArray+4;
-list *ListArrElement2 = &ListArray[5];
-*/
-
-// Iterative insert fn
-void InsertIntoListTail(list **L, int Data) {
- while (*L)
- L = &(*L)->Next;
- *L = (list*)malloc(sizeof(list));
- (*L)->Data = Data;
- (*L)->Next = 0;
-}
-
-// Recursive list search fn
-list *FindData(list *L, int Data) {
- if (L == 0) return 0;
- if (L->Data == Data) return L;
- return FindData(L->Next, Data);
-}
-
-// Driver fn...
-void DoListStuff() {
- list *MyList = 0;
- InsertIntoListTail(&MyList, 100);
- InsertIntoListTail(&MyList, 12);
- InsertIntoListTail(&MyList, 42);
- InsertIntoListTail(&MyList, 1123);
- InsertIntoListTail(&MyList, 1213);
-
- if (FindData(MyList, 75)) foundIt();
- if (FindData(MyList, 42)) foundIt();
- if (FindData(MyList, 700)) foundIt();
-}
-
-
-//#include <stdio.h>
-int puts(const char *s);
-
-struct FunStructTest {
- int Test1;
- char *Pointer;
- int Array[12];
-};
-
-struct SubStruct {
- short X, Y;
-};
-
-struct Quad {
- int w;
- struct SubStruct SS;
- struct SubStruct *SSP;
- char c;
- int y;
-};
-
-struct Quad GlobalQuad = { 4, {1, 2}, 0, 3, 156 };
-
-typedef int (*FuncPtr)(int);
-
-#if 0
-unsigned PtrFunc(int (*Func)(int), int X) {
- return Func(X);
-}
-
-char PtrFunc2(FuncPtr FuncTab[30], int Num) {
- return FuncTab[Num]('b');
-}
-
-extern char SmallArgs2(char w, char x, long long Zrrk, char y, char z);
-extern int SomeFunc(void);
-char SmallArgs(char w, char x, char y, char z) {
- SomeFunc();
- return SmallArgs2(w-1, x+1, y, z, w);
-}
-#endif
-
-#if 1
-int F0(struct Quad Q, int i) { /* Pass Q by value */
- struct Quad R;
- if (i) R.SS = Q.SS;
- //Q.SSP = &R.SS;
- Q.w = Q.y = Q.c = 1;
- return Q.SS.Y + i + R.y - Q.c;
-}
-
-int F1(struct Quad *Q, int i) { /* Pass Q by address */
- struct Quad R;
-#if 0
- if (i) R.SS = Q->SS;
-#else
- if (i) R = *Q;
-#endif
- Q->w = Q->y = Q->c = 1;
- return Q->SS.Y+i+R.y-Q->c;
-}
-#endif
-
-
-int BadFunc(float Val) {
- int Result;
-#if BROKEN_PHIS
- if (Val > 12.345) Result = 4;
-#endif
- return Result; /* Test use of undefined value */
-}
-
-#if USE_UNDEFINED
-int RealFunc(void) {
- return SomeUndefinedFunction(1, 4, 5);
-}
-#endif
-
-extern int EF1(int *, char *, int *);
-
-int Func(int Param, long long Param2) {
- int Result = Param;
-
- {{{{
- char c; int X;
- EF1(&Result, &c, &X);
- }}}}
- return Result;
-}
-
-
-short FunFunc(long long x, char z) {
- return x+z;
-}
-
-unsigned castTest(int X) { return X; }
-
-double TestAdd(double X, float Y) {
- return X+Y+.5;
-}
-
-int func(int i, int j) {
- while (i != 20)
- i += 2;
-
- j += func(2, i);
- return (i * 3 + j*2)*j;
-}
-
-int SumArray(int Array[], int Num) {
- int i, Result = 0;
- for (i = 0; i < Num; ++i)
- Result += Array[i];
-
- return Result;
-}
-
-int ArrayParam(int Values[100]) {
- return EF1((int*)Values[50], 0, &Values[50]);
-}
-
-int ArrayToSum(void) {
- int A[100], i;
- for (i = 0; i < 100; ++i)
- A[i] = i*4;
-
- return A[A[0]]; //SumArray(A, 100);
-}
-
-int ExternFunc(long long, unsigned*, short, unsigned char);
-
-int main(int argc, char *argv[]) {
- unsigned i;
-
- ExternFunc(-1, 0, (short)argc, 2);
- //func(argc, argc);
-
- for (i = 0; i < 10; i++)
- puts(argv[3]);//"Hello world");
- return 0;
-}
-
-double MathFunc(double X, double Y, double Z,
- double AA, double BB, double CC, double DD,
- double EE, double FF, double GG, double HH,
- double aAA, double aBB, double aCC, double aDD,
- double aEE, double aFF) {
- return X + Y + Z + AA + BB + CC + DD + EE + FF + GG + HH
- + aAA + aBB + aCC + aDD + aEE + aFF;
-}
-
-
-
-void strcpy(char *s1, char *s2) {
- while (*s1++ = *s2++);
-}
-
-void strcat(char *s1, char *s2) {
- while (*s1++);
- s1--;
- while (*s1++ = *s2++);
-}
-
-int strcmp(char *s1, char *s2) {
- while (*s1++ == *s2++);
- if (*s1 == 0) {
- if (*s2 == 0) {
- return 0;
- } else {
- return -1;
- }
- } else {
- if (*s2 == 0) {
- return 1;
- } else {
- return (*(--s1) - *(--s2));
- }
- }
-}