Changeset b3ad342


Ignore:
Timestamp:
Feb 15, 2025, 10:50:57 PM (5 weeks ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
dcf8054
Parents:
ef9f11c
Message:

fix 32-bit builtin-type definitions using size_t and ssize_t

Location:
libcfa/prelude
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/Makefile.am

    ref9f11c rb3ad342  
    1111## Created On       : Sun May 31 08:54:01 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Wed Nov  1 21:09:25 2023
    14 ## Update Count     : 221
     13## Last Modified On : Sat Feb 15 12:17:19 2025
     14## Update Count     : 233
    1515###############################################################################
    1616
     
    4747
    4848gcc-builtins.c : ${srcdir}/builtins.def ${srcdir}/prototypes.awk ${srcdir}/sync-builtins.cfa ${srcdir}/prototypes.c
    49         ${AM_V_GEN}gcc -I${srcdir} -E ${srcdir}/prototypes.c | awk -f ${srcdir}/prototypes.awk > ${@}
     49        ${AM_V_GEN}gcc -I${srcdir} -E ${srcdir}/prototypes.c | awk -v wordsize="${AM_CFLAGS}" -f ${srcdir}/prototypes.awk > ${@}
    5050
    5151prelude.cfa : prelude-gen.cc
  • libcfa/prelude/prototypes.awk

    ref9f11c rb3ad342  
    1010# Created On       : Sat May 16 07:57:37 2015
    1111# Last Modified By : Peter A. Buhr
    12 # Last Modified On : Wed Nov  1 20:44:04 2023
    13 # Update Count     : 37
     12# Last Modified On : Sat Feb 15 13:16:28 2025
     13# Update Count     : 60
    1414#
    1515
     
    3030        types[i+=1] = "WINT";                                           vtypes[i] = "unsigned int"
    3131        types[i+=1] = "INT";                                            vtypes[i] = "int"
    32         types[i+=1] = "ULONGLONG";                                      vtypes[i] = "unsigned long long"
    33         types[i+=1] = "ULONG";                                          vtypes[i] = "unsigned long"
    34         types[i+=1] = "UNSIGNED";                                       vtypes[i] = "unsigned"
     32        types[i+=1] = "ULONGLONG";                                      vtypes[i] = "unsigned long long int"
     33        types[i+=1] = "ULONG";                                          vtypes[i] = "unsigned long int"
     34        types[i+=1] = "UNSIGNED";                                       vtypes[i] = "unsigned int"
    3535        types[i+=1] = "COMPLEX_LONGDOUBLE";                     vtypes[i] = "_Complex long double"
    3636        types[i+=1] = "COMPLEX_DOUBLE";                         vtypes[i] = "_Complex double"
     
    3838        types[i+=1] = "LONGDOUBLEPTR";                          vtypes[i] = "long double *"
    3939        types[i+=1] = "LONGDOUBLE";                                     vtypes[i] = "long double"
    40         types[i+=1] = "LONGLONG";                                       vtypes[i] = "long long"
    41         types[i+=1] = "LONG";                                           vtypes[i] = "long"
     40        types[i+=1] = "LONGLONG";                                       vtypes[i] = "long long int"
     41        types[i+=1] = "LONG";                                           vtypes[i] = "long int"
    4242        types[i+=1] = "DFLOAT32";                                       vtypes[i] = "__Unsupported"
    4343        types[i+=1] = "DFLOAT64";                                       vtypes[i] = "__Unsupported"
     
    6767        types[i+=1] = "STRING";                                         vtypes[i] = "char *"
    6868        types[i+=1] = "FILEPTR";                                        vtypes[i] = "struct _IO_FILE *"
    69         types[i+=1] = "SIZE";                                           vtypes[i] = "unsigned long"
     69        types[i+=1] = "SIZE";                                           vtypes[i] = "unsigned long int"
     70        size_t = i;
    7071        types[i+=1] = "VAR";                                            vtypes[i] = "..."
    7172        types[i+=1] = "VALIST_ARG";                                     vtypes[i] = "__builtin_va_list"
     
    7475        types[i+=1] = "WORD";                                           vtypes[i] = ""
    7576        types[i+=1] = "SSIZE";                                          vtypes[i] = "long int"
     77        ssize_t = i;
    7678        types[i+=1] = "PID";                                            vtypes[i] = "int"
    7779        types[i+=1] = "I16";                                            vtypes[i] = "__int128"
    7880        types[i+=1] = "I8";                                                     vtypes[i] = "long long int"
    7981        types[i+=1] = "I4";                                                     vtypes[i] = "int"
    80         types[i+=1] = "I2";                                                     vtypes[i] = "short"
     82        types[i+=1] = "I2";                                                     vtypes[i] = "short int"
    8183        types[i+=1] = "I1";                                                     vtypes[i] = "char"
    8284        N = i + 1
     
    9294
    9395END {
     96        # variable wordsize passed from Makefile
     97        if ( index( wordsize, "-m32" ) != 0 ) {         # adjust size_t/ssize_t for 32-bit build
     98                vtypes[size_t] = "unsigned int"
     99                vtypes[ssize_t] = "signed int"
     100        } # if
     101
    94102        printf( "#define DEF_BUILTIN(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, FALLBACK_P, NONANSI_P, ATTRS, IMPLICIT, COND) TYPE(NAME)\n" );
    95103        printf( "#define FUNC_SIMPLE(RETURN, NAME, ARGS...) RETURN NAME(ARGS);\n" );
Note: See TracChangeset for help on using the changeset viewer.