Changeset cdd287b9 for libcfa


Ignore:
Timestamp:
Jan 12, 2025, 8:44:07 PM (3 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
44acc72
Parents:
32a119e9
Message:

update prelude basicTypes with _Float128 and _Float128 _Complex needed for the root of the conversion hierarchy

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified libcfa/prelude/prelude-gen.cc

    r32a119e9 rcdd287b9  
    1010// Created On       : Sat Feb 16 08:44:58 2019
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb  2 11:40:01 2023
    13 // Update Count     : 38
     12// Last Modified On : Sun Jan 12 20:28:33 2025
     13// Update Count     : 53
    1414//
    1515
     
    2424        const string name;
    2525        bool isFloat;
    26         bool hasComparison;
     26        bool hasComparison;             // CANNOT COMPARE COMPLEX NUMBERS!!!
    2727} basicTypes[] = {
    28         { "char"                  , false, true , },
    29         { "signed char"           , false, true , },
    30         { "unsigned char"         , false, true , },
    31         { "signed short"          , false, true , },
    32         { "unsigned short"        , false, true , },
    33         { "signed int"            , false, true , },
    34         { "unsigned int"          , false, true , },
    35         { "signed long int"       , false, true , },
    36         { "unsigned long int"     , false, true , },
    37         { "signed long long int"  , false, true , },
    38         { "unsigned long long int", false, true , },
    39         { "float"                 , true , true , },
    40         { "double"                , true , true , },
    41         { "long double"           , true , true , },
    42         { "float _Complex"        , true , false, },
    43         { "double _Complex"       , true , false, },
    44         { "long double _Complex"  , true , false, },
     28        { "char",                                       false, true, },
     29        { "signed char",                        false, true, },
     30        { "unsigned char",                      false, true, },
     31        { "signed short",                       false, true, },
     32        { "unsigned short",                     false, true, },
     33        { "signed int",                         false, true, },
     34        { "unsigned int",                       false, true, },
     35        { "signed long int",            false, true, },
     36        { "unsigned long int",          false, true, },
     37        { "signed long long int",       false, true, },
     38        { "unsigned long long int",     false, true, },
     39        { "float",                                      true , true, },
     40        { "double",                                     true,  true, },
     41        { "long double",                        true,  true, },
     42        { "float _Complex",                     true, false, },
     43        { "double _Complex",            true, false, },
     44        { "long double _Complex",       true, false, },
    4545#if defined(__SIZEOF_INT128__)
    46         { "__int128"              , false, true , },
    47         { "unsigned __int128"     , false, true , },
     46        { "__int128",                           false, true, },
     47        { "unsigned __int128",          false, true, },
    4848#endif
    4949#if defined(__i386__) || defined(__ia64__) || defined(__x86_64__)
    50         { "__float80"             , true , true , },
    51         { "__float128"            , true , true , },
     50        { "__float80",                          true,  true,  },
     51        { "__float128",                         true,  true,  },
     52        { "_Float128",                          true,  true,  },
     53        { "_Float128 _Complex",         true,  false, },
     54//      { "_Float128x",                         true,  true,  },                // add declarations if type supported
     55//      { "_Float128x _Complex",        true,  false, },
    5256#endif
    5357};
     
    6064        bool isEqual = false;
    6165} arithmeticOperators[] = {
    62         { "?++"  , true , true, false, false },
    63         { "?--"  , true , true, false, false },
    64         { "++?"  , true , true, false, false },
    65         { "--?"  , true , true, false, false },
    66         { "+?"   , false, true , false, false },
    67         { "-?"   , false, true , false, false },
    68         { "~?"   , false, false, false, false },
    69         { "!?"   , false, true , false, true  },
    70         { "?*?"  , false, true , false, false },
    71         { "?/?"  , false, true , false, false },
    72         { "?%?"  , false, false, false, false },
    73         { "?+?"  , false, true , false, false },
    74         { "?-?"  , false, true , false, false },
    75         { "?<<?" , false, false, false, false },
    76         { "?>>?" , false, false, false, false },
    77         { "?<?"  , false, true , true , false },
    78         { "?<=?" , false, true , true , true  },
    79         { "?>?"  , false, true , true , false },
    80         { "?>=?" , false, true , true , true  },
    81         { "?==?" , false, true , false, true  },
    82         { "?!=?" , false, true , false, true  },
    83         { "?&?"  , false, false, false, false },
    84         { "?^?"  , false, false, false, false },
    85         { "?|?"  , false, false, false, false },
    86         { "?=?"  , true , true , false, false },
    87         { "?+=?" , true , true , false, false },
    88         { "?-=?" , true , true , false, false },
    89         { "?*=?" , true , true , false, false },
    90         { "?/=?" , true , true , false, false },
    91         { "?%=?" , true , false, false, false },
    92         { "?<<=?", true , false, false, false },
    93         { "?>>=?", true , false, false, false },
    94         { "?&=?" , true , false, false, false },
    95         { "?|=?" , true , false, false, false },
    96         { "?^=?" , true , false, false, false },
     66        { "?++",        true,  true, false, false },
     67        { "?--",        true,  true, false, false },
     68        { "++?",        true,  true, false, false },
     69        { "--?",        true,  true, false, false },
     70        { "+?",         false, true, false, false },
     71        { "-?",         false, true, false, false },
     72        { "~?",         false, false, false, false },
     73        { "!?",         false, true, false, true  },
     74        { "?*?",        false, true, false, false },
     75        { "?/?",        false, true, false, false },
     76        { "?%?",        false, false, false, false },
     77        { "?+?",        false, true, false, false },
     78        { "?-?",        false, true, false, false },
     79        { "?<<?",       false, false, false, false },
     80        { "?>>?",       false, false, false, false },
     81        { "?<?",        false, true,  true, false },
     82        { "?<=?",       false, true,  true, true  },
     83        { "?>?",        false, true,  true, false },
     84        { "?>=?",       false, true,  true, true  },
     85        { "?==?",       false, true, false, true  },
     86        { "?!=?",       false, true, false, true  },
     87        { "?&?",        false, false, false, false },
     88        { "?^?",        false, false, false, false },
     89        { "?|?",        false, false, false, false },
     90        { "?=?",        true,  true, false, false },
     91        { "?+=?",       true,  true, false, false },
     92        { "?-=?",       true,  true, false, false },
     93        { "?*=?",       true,  true, false, false },
     94        { "?/=?",       true,  true, false, false },
     95        { "?%=?",       true, false, false, false },
     96        { "?<<=?",      true, false, false, false },
     97        { "?>>=?",      true, false, false, false },
     98        { "?&=?",       true, false, false, false },
     99        { "?|=?",       true, false, false, false },
     100        { "?^=?",       true, false, false, false },
    97101};
    98102
     
    106110        string sized;
    107111} pointerOperators[] = {
    108         { "?++", true, "", Normal, " | sized(DT)" },
    109         { "?--", true, "", Normal, " | sized(DT)" },
    110         { "++?", true, "", Normal, " | sized(DT)" },
    111         { "--?", true, "", Normal, " | sized(DT)" },
    112         { "!?" , false, "int", Normal, "" },
    113         { "?<?", false, "signed int", Normal, "" },
    114         { "?<=?", false, "signed int", Normal, "" },
    115         { "?>?", false, "signed int", Normal, "" },
    116         { "?>=?", false, "signed int", Normal, "" },
    117         { "?==?", false, "signed int", Normal, "" },
    118         { "?!=?", false, "signed int", Normal, "" },
    119         { "?=?", true, "", Normal, "" }, // void * LHS, zero_t RHS ???
    120 //      { "*?", false, "&", Normal, " | sized(DT)" }, // & ???
    121         { "*?", false, "&", Normal, "" }, // & ???
    122 
    123         { "?-?", false, "ptrdiff_t", Normal, " | sized(DT)" },
    124         { "?-?", false, "", PtrDiff, " | sized(DT)" },
    125         { "?-=?", true, "", PtrDiff, " | sized(DT)" },
    126 
    127         { "?+?", false, "", CommPtrDiff, " | sized(DT)" },
    128         { "?[?]", false, "&", CommPtrDiff, " | sized(DT)" }, // & ???
    129         { "?+=?" , true, "", PtrDiff, " | sized(DT)" },
     112        { "?++",        true,  "",                              Normal,                 " | sized(DT)" },
     113        { "?--",        true,  "",                              Normal,                 " | sized(DT)" },
     114        { "++?",        true,  "",                              Normal,                 " | sized(DT)" },
     115        { "--?",        true,  "",                              Normal,                 " | sized(DT)" },
     116        { "!?",         false, "int",                   Normal,                 "" },
     117        { "?<?",        false, "signed int",    Normal,                 "" },
     118        { "?<=?",       false, "signed int",    Normal,                 "" },
     119        { "?>?",        false, "signed int",    Normal,                 "" },
     120        { "?>=?",       false, "signed int",    Normal,                 "" },
     121        { "?==?",       false, "signed int",    Normal,                 "" },
     122        { "?!=?",       false, "signed int",    Normal,                 "" },
     123        { "?=?",        true,  "",                              Normal,                 "" }, // void * LHS, zero_t RHS ???
     124//      { "*?",         false, "&",                             Normal,                 " | sized(DT)" }, // & ???
     125        { "*?",         false, "&",                             Normal,                 "" }, // & ???
     126
     127        { "?-?",        false, "ptrdiff_t",             Normal,                 " | sized(DT)" },
     128        { "?-?",        false, "",                              PtrDiff,                " | sized(DT)" },
     129        { "?-=?",       true,  "",                              PtrDiff,                " | sized(DT)" },
     130
     131        { "?+?",        false, "",                              CommPtrDiff,    " | sized(DT)" },
     132        { "?[?]",       false, "&",                             CommPtrDiff,    " | sized(DT)" }, // & ???
     133        { "?+=?",       true,  "",                              PtrDiff,                " | sized(DT)" },
    130134};
    131135
Note: See TracChangeset for help on using the changeset viewer.