Changeset de62360d for src/CodeGen


Ignore:
Timestamp:
Jun 24, 2015, 4:04:19 PM (9 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
94e0864d
Parents:
a1d5d2a
Message:

fix computed goto, fixed -std=, implicit typedefs for enum and aggregates, add _Noreturn _Thread_local

Location:
src/CodeGen
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/CodeGen/CodeGenerator.cc

    ra1d5d2a rde62360d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 07:12:27 2015
    13 // Update Count     : 129
     12// Last Modified On : Tue Jun 23 16:16:57 2015
     13// Update Count     : 133
    1414//
    1515
     
    6969                if ( functionDecl->get_isInline() ) {
    7070                        output << "inline ";
     71                } // if
     72                if ( functionDecl->get_isNoreturn() ) {
     73                        output << "_Noreturn ";
    7174                } // if
    7275                output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) );
     
    295298                                  case OT_PREFIX:
    296299                                  case OT_PREFIXASSIGN:
     300                                  case OT_LABELADDRESS:
    297301                                        assert( untypedExpr->get_args().size() == 1 );
    298302                                        output << "(";
     
    318322                                        output << ")";
    319323                                        break;
    320              
     324                                       
    321325                                  case OT_CONSTANT:
    322326                                        // there are no intrinsic definitions of 0 or 1 as functions
     
    634638                        break;
    635639                  case DeclarationNode::Inline:
    636                         // handled as special via isInline flag (FIX)
     640                        output << "inline ";
    637641                        break;
    638642                  case DeclarationNode::Fortran:
    639                         // not handled
    640643                        output << "fortran ";
    641644                        break;
    642645                  case DeclarationNode::Noreturn:
    643                         // not handled
    644646                        output << "_Noreturn ";
    645647                        break;
    646648                  case DeclarationNode::Threadlocal:
    647                         // not handled
    648649                        output << "_Thread_local ";
    649650                        break;
  • src/CodeGen/OperatorTable.cc

    ra1d5d2a rde62360d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:42:07 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 17:41:14 2015
     13// Update Count     : 5
    1414//
    1515
     
    2020        namespace {
    2121                const OperatorInfo tableValues[] = {
    22                         {       "?[?]",         "",             "_operator_index",                      OT_INDEX                },
    23                         {       "?()",          "",             "_operator_call",                       OT_CALL                 },
    24                         {       "?++",          "++",   "_operator_postincr",           OT_POSTFIXASSIGN        },
    25                         {       "?--",          "--",   "_operator_postdecr",           OT_POSTFIXASSIGN        },
    26                         {       "*?",           "*",    "_operator_deref",                      OT_PREFIX               },
    27                         {       "+?",           "+",    "_operator_unaryplus",          OT_PREFIX               },
    28                         {       "-?",           "-",    "_operator_unaryminus",         OT_PREFIX               },
    29                         {       "~?",           "~",    "_operator_bitnot",                     OT_PREFIX               },
    30                         {       "!?",           "!",    "_operator_lognot",                     OT_PREFIX               },
    31                         {       "++?",          "++",   "_operator_preincr",            OT_PREFIXASSIGN         },
    32                         {       "--?",          "--",   "_operator_predecr",            OT_PREFIXASSIGN         },
    33                         {       "?*?",          "*",    "_operator_multiply",           OT_INFIX                },
    34                         {       "?/?",          "/",    "_operator_divide",                     OT_INFIX                },
    35                         {       "?%?",          "%",    "_operator_modulus",            OT_INFIX                },
    36                         {       "?+?",          "+",    "_operator_add",                        OT_INFIX                },
    37                         {       "?-?",          "-",    "_operator_subtract",           OT_INFIX                },
    38                         {       "?<<?",         "<<",   "_operator_shiftleft",          OT_INFIX                },
    39                         {       "?>>?",         ">>",   "_operator_shiftright",         OT_INFIX                },
    40                         {       "?<?",          "<",    "_operator_less",                       OT_INFIX                },
    41                         {       "?>?",          ">",    "_operator_greater",            OT_INFIX                },
    42                         {       "?<=?",         "<=",   "_operator_lessequal",          OT_INFIX                },
    43                         {       "?>=?",         ">=",   "_operator_greaterequal",       OT_INFIX                },
    44                         {       "?==?",         "==",   "_operator_equal",                      OT_INFIX                },
    45                         {       "?!=?",         "!=",   "_operator_notequal",           OT_INFIX                },
    46                         {       "?&?",          "&",    "_operator_bitand",                     OT_INFIX                },
    47                         {       "?^?",          "^",    "_operator_bitxor",                     OT_INFIX                },
    48                         {       "?|?",          "|",    "_operator_bitor",                      OT_INFIX                },
    49                         {       "?=?",          "=",    "_operator_assign",                     OT_INFIXASSIGN          },
    50                         {       "?*=?",         "*=",   "_operator_multassign",         OT_INFIXASSIGN          },
    51                         {       "?/=?",         "/=",   "_operator_divassign",          OT_INFIXASSIGN          },
    52                         {       "?%=?",         "%=",   "_operator_modassign",          OT_INFIXASSIGN          },
    53                         {       "?+=?",         "+=",   "_operator_addassign",          OT_INFIXASSIGN          },
    54                         {       "?-=?",         "-=",   "_operator_subassign",          OT_INFIXASSIGN          },
     22                        {       "?[?]",         "",             "_operator_index",                              OT_INDEX                        },
     23                        {       "?()",          "",             "_operator_call",                               OT_CALL                         },
     24                        {       "?++",          "++",   "_operator_postincr",                   OT_POSTFIXASSIGN        },
     25                        {       "?--",          "--",   "_operator_postdecr",                   OT_POSTFIXASSIGN        },
     26                        {       "*?",           "*",    "_operator_deref",                              OT_PREFIX                       },
     27                        {       "+?",           "+",    "_operator_unaryplus",                  OT_PREFIX                       },
     28                        {       "-?",           "-",    "_operator_unaryminus",                 OT_PREFIX                       },
     29                        {       "~?",           "~",    "_operator_bitnot",                             OT_PREFIX                       },
     30                        {       "!?",           "!",    "_operator_lognot",                             OT_PREFIX                       },
     31                        {       "++?",          "++",   "_operator_preincr",                    OT_PREFIXASSIGN         },
     32                        {       "--?",          "--",   "_operator_predecr",                    OT_PREFIXASSIGN         },
     33                        {       "?*?",          "*",    "_operator_multiply",                   OT_INFIX                        },
     34                        {       "?/?",          "/",    "_operator_divide",                             OT_INFIX                        },
     35                        {       "?%?",          "%",    "_operator_modulus",                    OT_INFIX                        },
     36                        {       "?+?",          "+",    "_operator_add",                                OT_INFIX                        },
     37                        {       "?-?",          "-",    "_operator_subtract",                   OT_INFIX                        },
     38                        {       "?<<?",         "<<",   "_operator_shiftleft",                  OT_INFIX                        },
     39                        {       "?>>?",         ">>",   "_operator_shiftright",                 OT_INFIX                        },
     40                        {       "?<?",          "<",    "_operator_less",                               OT_INFIX                        },
     41                        {       "?>?",          ">",    "_operator_greater",                    OT_INFIX                        },
     42                        {       "?<=?",         "<=",   "_operator_lessequal",                  OT_INFIX                        },
     43                        {       "?>=?",         ">=",   "_operator_greaterequal",               OT_INFIX                        },
     44                        {       "?==?",         "==",   "_operator_equal",                              OT_INFIX                        },
     45                        {       "?!=?",         "!=",   "_operator_notequal",                   OT_INFIX                        },
     46                        {       "?&?",          "&",    "_operator_bitand",                             OT_INFIX                        },
     47                        {       "?^?",          "^",    "_operator_bitxor",                             OT_INFIX                        },
     48                        {       "?|?",          "|",    "_operator_bitor",                              OT_INFIX                        },
     49                        {       "?=?",          "=",    "_operator_assign",                             OT_INFIXASSIGN          },
     50                        {       "?*=?",         "*=",   "_operator_multassign",                 OT_INFIXASSIGN          },
     51                        {       "?/=?",         "/=",   "_operator_divassign",                  OT_INFIXASSIGN          },
     52                        {       "?%=?",         "%=",   "_operator_modassign",                  OT_INFIXASSIGN          },
     53                        {       "?+=?",         "+=",   "_operator_addassign",                  OT_INFIXASSIGN          },
     54                        {       "?-=?",         "-=",   "_operator_subassign",                  OT_INFIXASSIGN          },
    5555                        {       "?<<=?",        "<<=",  "_operator_shiftleftassign",    OT_INFIXASSIGN          },
    5656                        {       "?>>=?",        ">>=",  "_operator_shiftrightassign",   OT_INFIXASSIGN          },
    57                         {       "?&=?",         "&=",   "_operator_bitandassign",       OT_INFIXASSIGN          },
    58                         {       "?^=?",         "^=",   "_operator_bitxorassign",       OT_INFIXASSIGN          },
    59                         {       "?|=?",         "|=",   "_operator_bitorassign",        OT_INFIXASSIGN          },
    60                         {       "0",            "0",    "_constant_zero",                       OT_CONSTANT             },
    61                         {       "1",            "1",    "_constant_one",                        OT_CONSTANT             }
     57                        {       "?&=?",         "&=",   "_operator_bitandassign",               OT_INFIXASSIGN          },
     58                        {       "?^=?",         "^=",   "_operator_bitxorassign",               OT_INFIXASSIGN          },
     59                        {       "?|=?",         "|=",   "_operator_bitorassign",                OT_INFIXASSIGN          },
     60                        {       "&&",           "&&",   "&&",                                                   OT_LABELADDRESS         },
     61                        {       "0",            "0",    "_constant_zero",                               OT_CONSTANT                     },
     62                        {       "1",            "1",    "_constant_one",                                OT_CONSTANT                     }
    6263                };
    6364
  • src/CodeGen/OperatorTable.h

    ra1d5d2a rde62360d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:43:07 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 16:09:27 2015
     13// Update Count     : 3
    1414//
    1515
     
    2929                OT_POSTFIXASSIGN,
    3030                OT_INFIXASSIGN,
     31                OT_LABELADDRESS,
    3132                OT_CONSTANT
    3233        };
Note: See TracChangeset for help on using the changeset viewer.