Skip to content

Commit

Permalink
fix: tinycc include tests and examples needed by configure
Browse files Browse the repository at this point in the history
  • Loading branch information
jaromil committed Sep 22, 2024
1 parent 18c390c commit c0ed409
Show file tree
Hide file tree
Showing 321 changed files with 20,307 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lib/tinycc/examples/ex1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/local/bin/tcc -run
#include <tcclib.h>

int main()
{
printf("Hello World\n");
return 0;
}
98 changes: 98 additions & 0 deletions lib/tinycc/examples/ex2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#include <stdlib.h>
#include <stdio.h>

#define N 20

int nb_num;
int tab[N];
int stack_ptr;
int stack_op[N];
int stack_res[60];
int result;

int find(int n, int i1, int a, int b, int op)
{
int i, j;
int c;

if (stack_ptr >= 0) {
stack_res[3*stack_ptr] = a;
stack_op[stack_ptr] = op;
stack_res[3*stack_ptr+1] = b;
stack_res[3*stack_ptr+2] = n;
if (n == result)
return 1;
tab[i1] = n;
}

for(i=0;i<nb_num;i++) {
for(j=i+1;j<nb_num;j++) {
a = tab[i];
b = tab[j];
if (a != 0 && b != 0) {

tab[j] = 0;
stack_ptr++;

if (find(a + b, i, a, b, '+'))
return 1;
if (find(a - b, i, a, b, '-'))
return 1;
if (find(b - a, i, b, a, '-'))
return 1;
if (find(a * b, i, a, b, '*'))
return 1;
if (b != 0) {
c = a / b;
if (find(c, i, a, b, '/'))
return 1;
}

if (a != 0) {
c = b / a;
if (find(c, i, b, a, '/'))
return 1;
}

stack_ptr--;
tab[i] = a;
tab[j] = b;
}
}
}

return 0;
}

int main(int argc, char **argv)
{
int i, res, p;

if (argc < 3) {
printf("usage: %s: result numbers...\n"
"Try to find result from numbers with the 4 basic operations.\n", argv[0]);
exit(1);
}

p = 1;
result = atoi(argv[p]);
printf("result=%d\n", result);
nb_num = 0;
for(i=p+1;i<argc;i++) {
tab[nb_num++] = atoi(argv[i]);
}

stack_ptr = -1;
res = find(0, 0, 0, 0, ' ');
if (res) {
for(i=0;i<=stack_ptr;i++) {
printf("%d %c %d = %d\n",
stack_res[3*i], stack_op[i],
stack_res[3*i+1], stack_res[3*i+2]);
}
return 0;
} else {
printf("Impossible\n");
return 1;
}
}
23 changes: 23 additions & 0 deletions lib/tinycc/examples/ex3.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include <tcclib.h>

int fib(n)
{
if (n <= 2)
return 1;
else
return fib(n-1) + fib(n-2);
}

int main(int argc, char **argv)
{
int n;
if (argc < 2) {
printf("usage: fib n\n"
"Compute nth Fibonacci number\n");
return 1;
}

n = atoi(argv[1]);
printf("fib(%d) = %d\n", n, fib(n, 2));
return 0;
}
26 changes: 26 additions & 0 deletions lib/tinycc/examples/ex4.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/local/bin/tcc -run -L/usr/X11R6/lib -lX11
#include <stdlib.h>
#include <stdio.h>
#include <X11/Xlib.h>

/* Yes, TCC can use X11 too ! */

int main(int argc, char **argv)
{
Display *display;
Screen *screen;

display = XOpenDisplay("");
if (!display) {
fprintf(stderr, "Could not open X11 display\n");
exit(1);
}
printf("X11 display opened.\n");
screen = XScreenOfDisplay(display, 0);
printf("width = %d\nheight = %d\ndepth = %d\n",
screen->width,
screen->height,
screen->root_depth);
XCloseDisplay(display);
return 0;
}
8 changes: 8 additions & 0 deletions lib/tinycc/examples/ex5.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <stdlib.h>
#include <stdio.h>

int main()
{
printf("Hello World\n");
return 0;
}
13 changes: 13 additions & 0 deletions lib/tinycc/tests/42test.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* This file is to test compute #include directives. It's named so
that it starts with a pre-processing number which isn't a valid
number (42test.h). Including this must work. */
#ifndef INC42_FIRST
int have_included_42test_h;
#define INC42_FIRST
#elif !defined INC42_SECOND
#define INC42_SECOND
int have_included_42test_h_second;
#else
#define INC42_THIRD
int have_included_42test_h_third;
#endif
Loading

0 comments on commit c0ed409

Please sign in to comment.