Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix make dist.
[simgrid.git] / buildtools / Cmake / test_prog / prog_GRAS_ARCH.c
1 //This programme check size of datatypes 
2
3 /* Copyright (c) 2010. The SimGrid Team.
4  * All rights reserved.                                                     */
5
6 /* This program is free software; you can redistribute it and/or modify it
7  * under the terms of the license (GNU LGPL) which comes with this package. */
8
9 #include <sys/types.h>
10 #include <stdio.h>
11
12 int main(void)
13 {
14
15   int c = sizeof(char);
16   int si = sizeof(short int);
17   int i = sizeof(int);
18   int li = sizeof(long int);
19   int lli = sizeof(long long int);
20   int f = sizeof(float);
21   int v = sizeof(void *);
22   int vv = sizeof(void (*)(void));
23   /*printf("char : %d\n",c);
24      printf("short int : %d\n",si);
25      printf("int : %d\n",i);
26      printf("long int : %d\n",li);
27      printf("long long int : %d\n",lli);
28      printf("float : %d\n",f);
29      printf("void * : %d\n",v);
30      printf("void (*) (void) : %d\n",vv); */
31
32   struct s0 {
33     char c0;
34     char i0;
35   };
36   struct s1 {
37     char c1;
38     short int i1;
39   };
40   struct s2 {
41     char c2;
42     int i2;
43   };
44   struct s3 {
45     char c3;
46     long int i3;
47   };
48   struct s4 {
49     char c4;
50     long long int i4;
51   };
52   struct s5 {
53     char c5;
54     double i5;
55   };
56   struct s6 {
57     char c6;
58     void *i6;
59   };
60   int res0 = sizeof(struct s0) - sizeof(char);
61   int res1 = sizeof(struct s1) - sizeof(short int);
62   int res2 = sizeof(struct s2) - sizeof(int);
63   int res3 = sizeof(struct s3) - sizeof(long int);
64   int res4 = sizeof(struct s4) - sizeof(long long int);
65   int res5 = sizeof(struct s5) - sizeof(double);
66   int res6 = sizeof(struct s6) - sizeof(void *);
67   /*printf("struct-char : %d\n",res0);
68      printf("struct-short int : %d\n",res1);      
69      printf("struct-int : %d\n",res2);    
70      printf("struct-long int : %d\n",res3);       
71      printf("struct-long long int : %d\n",res4);  
72      printf("struct-double : %d\n",res5); 
73      printf("struct-void * : %d\n",res6); */
74
75   printf
76       ("_C:%d/%d:_I:%d/%d:%d/%d:%d/%d:%d/%d:_P:%d/%d:%d/%d:_D:4/%d:8/%d:",
77        c, res0, si, res1, i, res2, li, res3, lli, res4, v, res6, vv, res6,
78        f, res5);
79   return 1;
80 }