diff options
Diffstat (limited to 'cil/src/machdep.c')
-rw-r--r-- | cil/src/machdep.c | 220 |
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); -} |