Changes in / [6e21aaf:8446c18]


Ignore:
Files:
2 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/heap.cfa

    r6e21aaf r8446c18  
    509509        checkHeader( header < (Heap.Storage.Header *)heapBegin || (Heap.Storage.Header *)heapEnd < header, name, addr ); // bad address ? (offset could be + or -)
    510510
     511        Heap * homeManager;
    511512        if ( unlikely( freeHead == 0p || // freed and only free-list node => null link
    512513                                   // freed and link points at another free block not to a bucket in the bucket array.
  • src/AST/module.mk

    r6e21aaf r8446c18  
    3737        AST/Init.cpp \
    3838        AST/Init.hpp \
    39         AST/Inspect.cpp \
    40         AST/Inspect.hpp \
    4139        AST/Label.hpp \
    4240        AST/LinkageSpec.cpp \
  • src/CodeGen/CodeGenerator.cc

    r6e21aaf r8446c18  
    294294                                } else {
    295295                                        if ( obj->get_init() ) {
    296                                                 obj->get_init()->accept( *visitor );
     296                                                obj->get_init()->accept( *visitor ); 
    297297                                        } else {
    298298                                                // Should not reach here!
     
    683683                extension( variableExpr );
    684684                const OperatorInfo * opInfo;
    685                 if( dynamic_cast<ZeroType*>( variableExpr->get_var()->get_type() ) ) {
    686                         output << "0";
    687                 } else if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && (opInfo = operatorLookup( variableExpr->get_var()->get_name() )) && opInfo->type == OT_CONSTANT ) {
     685                if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && (opInfo = operatorLookup( variableExpr->get_var()->get_name() )) && opInfo->type == OT_CONSTANT ) {
    688686                        output << opInfo->symbol;
    689687                } else {
    690                         // if (dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())
     688                        // if (dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type()) 
    691689                        // && dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())->baseEnum->base) {
    692690                        //      output << '(' <<genType(dynamic_cast<EnumInstType *>(variableExpr->get_var()->get_type())->baseEnum->base, "", options) << ')';
  • src/GenPoly/Box.cc

    r6e21aaf r8446c18  
    12771277                        FunctionType * ftype = functionDecl->type;
    12781278                        if ( ! ftype->returnVals.empty() && functionDecl->statements ) {
    1279                                 // intrinsic functions won't be using the _retval so no need to generate it.
    1280                                 if ( functionDecl->linkage != LinkageSpec::Intrinsic && !isPrefix( functionDecl->name, "_thunk" ) && ! isPrefix( functionDecl->name, "_adapter" ) ) { // xxx - remove check for prefix once thunks properly use ctor/dtors
     1279                                if ( ! isPrefix( functionDecl->name, "_thunk" ) && ! isPrefix( functionDecl->name, "_adapter" ) ) { // xxx - remove check for prefix once thunks properly use ctor/dtors
    12811280                                        assert( ftype->returnVals.size() == 1 );
    12821281                                        DeclarationWithType * retval = ftype->returnVals.front();
  • src/Validate/Autogen.cpp

    r6e21aaf r8446c18  
    2828#include "AST/DeclReplacer.hpp"
    2929#include "AST/Expr.hpp"
    30 #include "AST/Inspect.hpp"
    3130#include "AST/Pass.hpp"
    3231#include "AST/Stmt.hpp"
     
    122121
    123122        // Built-ins do not use autogeneration.
    124         bool shouldAutogen() const final { return !decl->linkage.is_builtin && !structHasFlexibleArray(decl); }
     123        bool shouldAutogen() const final { return !decl->linkage.is_builtin; }
    125124private:
    126125        void genFuncBody( ast::FunctionDecl * decl ) final;
     
    184183        {
    185184                // TODO: These functions are somewhere between instrinsic and autogen,
    186                 // could possibly use a new linkage type. For now we just make the
    187                 // basic ones intrinsic to code-gen them as C assignments.
    188                 const auto & real_type = decl->base;
    189                 const auto & basic = real_type.as<ast::BasicType>();
    190                 if(!real_type || (basic && basic->isInteger())) proto_linkage = ast::Linkage::Intrinsic;
     185                // could possibly use a new linkage type. For now we just make them
     186                // intrinsic to code-gen them as C assignments.
     187                proto_linkage = ast::Linkage::Intrinsic;
    191188        }
    192189
     
    405402        auto retval = srcParam();
    406403        retval->name = "_ret";
     404        // xxx - Adding this unused attribute can slience unused variable warning
     405        // However, some code might not be compiled as expected
     406        // Temporarily disabled
     407        // retval->attributes.push_back(new ast::Attribute("unused"));
    407408        return genProto( "?=?", { dstParam(), srcParam() }, { retval } );
    408409}
  • tests/.expect/attributes.nast.arm64.txt

    r6e21aaf r8446c18  
    13341334    }
    13351335    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
     1336        enum __anonymous4 _X4_retM12__anonymous4_2;
    13361337        {
    13371338            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
  • tests/.expect/attributes.nast.x64.txt

    r6e21aaf r8446c18  
    13341334    }
    13351335    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
     1336        enum __anonymous4 _X4_retM12__anonymous4_2;
    13361337        {
    13371338            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
  • tests/.expect/attributes.nast.x86.txt

    r6e21aaf r8446c18  
    13341334    }
    13351335    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
     1336        enum __anonymous4 _X4_retM12__anonymous4_2;
    13361337        {
    13371338            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
  • tests/.expect/attributes.oast.x64.txt

    r6e21aaf r8446c18  
    13341334    }
    13351335    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
     1336        enum __anonymous4 _X4_retM12__anonymous4_2;
    13361337        {
    13371338            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
Note: See TracChangeset for help on using the changeset viewer.