Nuke useless testcases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17539 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-11-07 00:30:51 +00:00
parent b4be8ee024
commit 3967c2fb00
2 changed files with 0 additions and 127 deletions

View File

@ -1,82 +0,0 @@
/* FIXME: this testcase should be automated! */
#include <stdio.h>
typedef struct Tree_struct {
int data;
struct Tree_struct *left, *right;
} Tree;
static Tree T1, T2, T3, T4, T5, T6, T7;
static Tree *Root, *ANode;
static int N = 4107;
/* forces *Tb->right to be collapsed */
void makeMore(Tree* Ta, Tree* Tb)
{
Ta->left = &T1;
Ta->right = &T2;
Tb->left = &T4;
/* Tb->right = &T5; */
Tb->right = (Tree*) (((char*) &T5) + 5); /* point to fifth byte of T5 */
}
/* multiple calls to this should force globals to be merged in TD graph
* but not in globals graph
*/
void makeData(Tree* Ta)
{
static int N = 101;
Ta->data = N;
}
void makeRoots()
{
T1.left = &T2;
makeMore(&T1, &T3);
}
/* BU graph shows T1.left->{T2}, but TD graph should show T1.left->{T1,T2,T6,H}
* and T.right->{T1,T2,T6,H} */
void makeAfter1()
{
T1.left = &T2;
}
/* BU graph shows:
* T2.right->{H}, H.left->{T6}; H.right->{T2}, T3.left<->T7.left
*
* TD graph and GlobalsGraph should show:
* T2.right->{T1,T2,T6,H}
* H.left->{T1,T2,T6,H}; H.right->{T1,T2,T6,H}.
* T3.left->{T4,T7}, T3.right->{T4,T7}, T7.left->{T3}
*/
void makeAfter2()
{
Tree* newT = (Tree*) malloc(sizeof(Tree));
T2.right = newT; /* leaked: do not access T2 in main */
newT->left = &T6;
newT->right = &T2;
T3.left = &T7;
T7.left = &T3;
}
/* BU and TD graphs should have no reachable globals, forcing callers and
* callees to get all globals from GlobalsGraph
*/
void makePass()
{
makeAfter1();
makeAfter2();
}
int main()
{
makeRoots();
T3.right = &T4;
makeData(&T3);
makeData(&T5);
makePass();
printf("T3.data = %d\n", T3.data);
}

View File

@ -1,45 +0,0 @@
/* Test globals used and unused within different parts of a program */
/* FIXME: This testcase should be automated */
#include <stdlib.h>
extern void exit_dummy(int*);
static int** G;
static int N, M;
void
foo(int *Z) /* accesses globals printf and format string, and */
{ /* N = alloca(int) from test() */
if (Z == 0) exit_dummy(Z); /* call to external function */
++*Z;
printf("N = %d\n", *Z);
}
void leaf2(int* Y)
{
if (Y == 0) exit_dummy(Y); /* second call to external function */
}
void
test(int* X) /* accesses global G */
{ /* allocates G = malloc(int*) and N = alloca(int) */
if (X == 0)
X = &N;
G = (int**) alloca(sizeof(int*));
*G = &N;
**G = 10;
foo(*G);
leaf2(*G);
*X = **G;
/* free(G); */
}
int
main() /* only accesses global N */
{
/* N = 0; */
test(0 /*&N*/);
return 0;
}