Changeset c0aa336 for src/CodeGen


Ignore:
Timestamp:
Feb 6, 2017, 4:19:41 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
b4d65c7
Parents:
a362f97
Message:

third attempt at gcc attributes

Location:
src/CodeGen
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/CodeGen/CodeGenerator.cc

    ra362f97 rc0aa336  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jan 18 15:23:08 2017
    13 // Update Count     : 414
     12// Last Modified On : Wed Feb  1 14:09:02 2017
     13// Update Count     : 416
    1414//
    1515
     
    177177
    178178        void CodeGenerator::handleAggregate( AggregateDecl * aggDecl ) {
     179                genAttributes( aggDecl->get_attributes() );
     180               
    179181                if ( aggDecl->get_name() != "" )
    180182                        output << aggDecl->get_name();
     
    214216                extension( enumDecl );
    215217                output << "enum ";
     218                genAttributes( enumDecl->get_attributes() );
    216219
    217220                if ( enumDecl->get_name() != "" )
  • TabularUnified src/CodeGen/GenType.cc

    ra362f97 rc0aa336  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jul  9 16:43:52 2015
    13 // Update Count     : 13
     12// Last Modified On : Thu Feb  2 13:53:43 2017
     13// Update Count     : 20
    1414//
    1515
     
    5656        std::string genType( Type *type, const std::string &baseString, bool mangle ) {
    5757                GenType gt( baseString, mangle );
     58                std::ostringstream os;
     59               
     60                if ( ! type->get_attributes().empty() ) {
     61                        CodeGenerator cg( os, mangle );
     62                        cg.genAttributes( type->get_attributes() );
     63                } // if
     64
    5865                type->accept( gt );
    59                 return gt.get_typeString();
     66                return os.str() + gt.get_typeString();
    6067        }
    6168
     
    99106                if ( qualifiers.isAtomic ) {
    100107                        os << "_Atomic ";
    101                 } // if
    102                 if ( qualifiers.isAttribute ) {
    103                         os << "__attribute(( )) ";
    104108                } // if
    105109                if ( dimension != 0 ) {
Note: See TracChangeset for help on using the changeset viewer.