Changeset 4e2b9710 for src/Parser


Ignore:
Timestamp:
Aug 25, 2016, 9:14:18 PM (8 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, 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:
a839867
Parents:
c1c1112 (diff), 486341f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg2:software/cfa/cfa-cc

Location:
src/Parser
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rc1c1112 r4e2b9710  
    5050        newnode->isInline = isInline;
    5151        newnode->isNoreturn = isNoreturn;
    52         newnode->bitfieldWidth = bitfieldWidth;
     52        newnode->bitfieldWidth = maybeClone( bitfieldWidth );
    5353        newnode->hasEllipsis = hasEllipsis;
    54         newnode->initializer = initializer;
     54        newnode->initializer = maybeClone( initializer );
    5555        newnode->set_next( maybeClone( get_next() ) );
    5656        newnode->linkage = linkage;
     
    823823                                        *out++ = decl;
    824824                                } // if
     825                                delete extr;
    825826                        } // if
    826827                        Declaration *decl = cur->build();
  • src/Parser/LinkageSpec.cc

    rc1c1112 r4e2b9710  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // LinkageSpec.cc -- 
    8 // 
     7// LinkageSpec.cc --
     8//
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:22:09 2015
     
    1212// Last Modified On : Sun Aug 21 12:32:53 2016
    1313// Update Count     : 17
    14 // 
     14//
    1515
    1616#include <string>
     
    3232
    3333std::string LinkageSpec::toString( LinkageSpec::Spec linkage ) {
     34        assert( linkage >= 0 && linkage < LinkageSpec::NoOfSpecs );
    3435        static const char *linkageKinds[LinkageSpec::NoOfSpecs] = {
    3536                "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in",
     
    3940
    4041bool LinkageSpec::isDecoratable( Spec spec ) {
     42        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    4143        static bool decoratable[LinkageSpec::NoOfSpecs] = {
    4244                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    43                         true,           true,           false,  true,           false, 
     45                        true,           true,           false,  true,           false,
    4446        };
    4547        return decoratable[spec];
     
    4749
    4850bool LinkageSpec::isGeneratable( Spec spec ) {
     51        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    4952        static bool generatable[LinkageSpec::NoOfSpecs] = {
    5053                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    51                         true,           true,           true,   true,           false, 
     54                        true,           true,           true,   true,           false,
    5255        };
    5356        return generatable[spec];
     
    5558
    5659bool LinkageSpec::isOverridable( Spec spec ) {
     60        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    5761        static bool overridable[LinkageSpec::NoOfSpecs] = {
    5862                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    59                         true,           false,          false,  true,           false, 
     63                        true,           false,          false,  true,           false,
    6064        };
    6165        return overridable[spec];
     
    6367
    6468bool LinkageSpec::isBuiltin( Spec spec ) {
     69        assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs );
    6570        static bool builtin[LinkageSpec::NoOfSpecs] = {
    6671                //      Intrinsic,      Cforall,        C,              AutoGen,        Compiler
    67                         true,           false,          false,  false,          true, 
     72                        true,           false,          false,  false,          true,
    6873        };
    6974        return builtin[spec];
  • src/Parser/ParseNode.h

    rc1c1112 r4e2b9710  
    109109        ExpressionNode( const ExpressionNode &other );
    110110        virtual ~ExpressionNode() {}
    111         virtual ExpressionNode *clone() const { assert( false ); return nullptr; }
     111        virtual ExpressionNode *clone() const { return expr ? new ExpressionNode( expr->clone() ) : nullptr; }
    112112
    113113        bool get_extension() const { return extension; }
  • src/Parser/StatementNode.cc

    rc1c1112 r4e2b9710  
    4444                        agg = decl;
    4545                } // if
    46                 stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) );
     46                stmt.reset( new DeclStmt( noLabels, maybeMoveBuild< Declaration >(agg) ) );
    4747        } else {
    4848                assert( false );
  • src/Parser/TypeData.cc

    rc1c1112 r4e2b9710  
    182182                break;
    183183          case Array:
    184                 newtype->array->dimension = array->dimension;
     184                newtype->array->dimension = maybeClone( array->dimension );
    185185                newtype->array->isVarLen = array->isVarLen;
    186186                newtype->array->isStatic = array->isStatic;
Note: See TracChangeset for help on using the changeset viewer.