summaryrefslogtreecommitdiff
path: root/cil/src/machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'cil/src/machdep.c')
-rw-r--r--cil/src/machdep.c220
1 files changed, 0 insertions, 220 deletions
diff --git a/cil/src/machdep.c b/cil/src/machdep.c
deleted file mode 100644
index 1134865..0000000
--- a/cil/src/machdep.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- *
- * Copyright (c) 2001-2002,
- * George C. Necula <necula@cs.berkeley.edu>
- * Scott McPeak <smcpeak@cs.berkeley.edu>
- * Wes Weimer <weimer@cs.berkeley.edu>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The names of the contributors may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "../config.h"
-
-#include <stdio.h>
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef HAVE_WCHAR_H
-#include <wchar.h>
-#endif
-
-#ifdef _GNUCC
-#define LONGLONG long long
-#define CONST_STRING_LITERALS "true"
-#define VERSION __VERSION__
-#define VERSION_MAJOR __GNUC__
-#define VERSION_MINOR __GNUC_MINOR__
-#endif
-
-#ifdef _MSVC
-#define LONGLONG __int64
-#define CONST_STRING_LITERALS "false"
-#define VERSION "0"
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 0
-#endif
-
-/* The type for the machine dependency structure is generated from the
- Makefile */
-int main() {
- fprintf(stderr, "Generating machine dependency information for CIL\n");
-
- printf("(* Generated by code in %s *)\n", __FILE__);
- printf("\t version_major = %d;\n", VERSION_MAJOR);
- printf("\t version_minor = %d;\n", VERSION_MINOR);
- printf("\t version = \"%s\";\n", VERSION);
- // Size of certain types
- printf("\t sizeof_short = %d;\n", sizeof(short));
- printf("\t sizeof_int = %d;\n", sizeof(int));
- printf("\t sizeof_long = %d;\n", sizeof(long));
- printf("\t sizeof_longlong = %d;\n", sizeof(LONGLONG));
- printf("\t sizeof_ptr = %d;\n", sizeof(int *));
- printf("\t sizeof_enum = %d;\n", sizeof(enum e { ONE, TWO }));
- printf("\t sizeof_float = %d;\n", sizeof(float));
- printf("\t sizeof_double = %d;\n", sizeof(double));
- printf("\t sizeof_longdouble = %d;\n", sizeof(long double));
- printf("\t sizeof_sizeof = %d;\n", sizeof(sizeof(int)));
- printf("\t sizeof_wchar = %d;\n", sizeof(wchar_t));
- printf("\t sizeof_void = %d;\n", sizeof(void));
- printf("\t sizeof_fun = %d;\n",
-#ifdef __GNUC__
- sizeof(main)
-#else
- 0
-#endif
- );
-
- // The alignment of a short
- {
- struct shortstruct {
- char c;
- short s;
- };
- printf("\t alignof_short = %d;\n",
- (int)(&((struct shortstruct*)0)->s));
- }
-
- // The alignment of an int
- {
- struct intstruct {
- char c;
- int i;
- };
- printf("\t alignof_int = %d;\n",
- (int)(&((struct intstruct*)0)->i));
- }
-
- // The alignment of a long
- {
- struct longstruct {
- char c;
- long l;
- };
- printf("\t alignof_long = %d;\n",
- (int)(&((struct longstruct*)0)->l));
- }
-
- // The alignment of long long
- {
- struct longlong {
- char c;
- LONGLONG ll;
- };
- printf("\t alignof_longlong = %d;\n",
- (int)(&((struct longlong*)0)->ll));
- }
-
- // The alignment of a ptr
- {
- struct ptrstruct {
- char c;
- int * p;
- };
- printf("\t alignof_ptr = %d;\n",
- (int)(&((struct ptrstruct*)0)->p));
- }
-
- // The alignment of an enum
- {
- struct enumstruct {
- char c;
- enum e2 { THREE, FOUR, FIVE } e;
- };
- printf("\t alignof_enum = %d;\n",
- (int)(&((struct enumstruct*)0)->e));
- }
-
- // The alignment of a float
- {
- struct floatstruct {
- char c;
- float f;
- };
- printf("\t alignof_float = %d;\n",
- (int)(&((struct floatstruct*)0)->f));
- }
-
- // The alignment of double
- {
- struct s1 {
- char c;
- double d;
- };
- printf("\t alignof_double = %d;\n",
- (int)(&((struct s1*)0)->d));
- }
-
- // The alignment of long double
- {
- struct s1 {
- char c;
- long double ld;
- };
- printf("\t alignof_longdouble = %d;\n",
- (int)(&((struct s1*)0)->ld));
- }
-
- printf("\t alignof_str = %d;\n",
-#ifdef __GNUC__
- __alignof("a string")
-#else
- 0
-#endif
- );
-
- printf("\t alignof_fun = %d;\n",
-#ifdef __GNUC__
- __alignof(main)
-#else
- 0
-#endif
- );
-
- // Whether char is unsigned
- printf("\t char_is_unsigned = %s;\n",
- ((char)0xff) > 0 ? "true" : "false");
-
-
- // Whether string literals contain constant characters
- puts("\t const_string_literals = " CONST_STRING_LITERALS ";");
-
-
- // endianity
- {
- int e = 0x11223344;
- printf("\t little_endian = %s;\n",
- (0x44 == *(char*)&e) ? "true" :
- ((0x11 == *(char*)&e) ? "false" : (exit(1), "false")));
- }
-
- exit(0);
-}