Changeset ef22ad6 for src


Ignore:
Timestamp:
Aug 23, 2019, 6:52:14 AM (5 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
bbb1b35
Parents:
2c60af75 (diff), 5d00425 (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:

deal with conflicts

Location:
src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    r2c60af75 ref22ad6  
    11881188                assert( toType );
    11891189                toType = resolveTypeof( toType, indexer );
     1190                assert(!dynamic_cast<TypeofType *>(toType));
    11901191                SymTab::validateType( toType, &indexer );
    11911192                adjustExprType( toType, env, indexer );
  • src/SynTree/ApplicationExpr.cc

    r2c60af75 ref22ad6  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Apr 26 12:41:06 2016
    13 // Update Count     : 4
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Aug 12 14:28:00 2019
     13// Update Count     : 5
    1414//
    1515
     
    7676}
    7777
     78bool ApplicationExpr::get_lvalue() const {
     79        return result->get_lvalue();
     80}
     81
    7882void ApplicationExpr::print( std::ostream &os, Indenter indent ) const {
    7983        os << "Application of" << std::endl << indent+1;
  • src/SynTree/CommaExpr.cc

    r2c60af75 ref22ad6  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon May 02 15:19:44 2016
    13 // Update Count     : 1
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Arg 12 16:11:00 2016
     13// Update Count     : 2
    1414//
    1515
     
    3939}
    4040
     41bool CommaExpr::get_lvalue() const {
     42        // xxx - as above, shouldn't be an lvalue but that information is used anyways.
     43        return result->get_lvalue();
     44}
     45
    4146void CommaExpr::print( std::ostream &os, Indenter indent ) const {
    4247        os << "Comma Expression:" << std::endl;
  • src/SynTree/Expression.cc

    r2c60af75 ref22ad6  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Aug  7 17:03:00 2019
    13 // Update Count     : 62
     12// Last Modified On : Thr Aug 15 13:43:00 2019
     13// Update Count     : 64
    1414//
    1515
     
    6464
    6565bool Expression::get_lvalue() const {
    66         return result->get_lvalue();
     66        assert( !result->get_lvalue() );
     67        return false;
    6768}
    6869
     
    138139}
    139140
     141bool VariableExpr::get_lvalue() const {
     142        return result->get_lvalue();
     143}
     144
    140145VariableExpr * VariableExpr::functionPointer( FunctionDecl * func ) {
    141146        VariableExpr * funcExpr = new VariableExpr( func );
     
    269274CastExpr::~CastExpr() {
    270275        delete arg;
     276}
     277
     278bool CastExpr::get_lvalue() const {
     279        return result->get_lvalue();
    271280}
    272281
     
    380389        // don't delete the member declaration, since it points somewhere else in the tree
    381390        delete aggregate;
     391}
     392
     393bool MemberExpr::get_lvalue() const {
     394        assert( result->get_lvalue() );
     395        return true;
    382396}
    383397
     
    432446}
    433447
     448bool UntypedExpr::get_lvalue() const {
     449        return result->get_lvalue();
     450}
    434451
    435452void UntypedExpr::print( std::ostream & os, Indenter indent ) const {
     
    490507        delete arg2;
    491508        delete arg3;
     509}
     510
     511bool ConditionalExpr::get_lvalue() const {
     512        return result->get_lvalue();
    492513}
    493514
     
    548569}
    549570
     571bool ConstructorExpr::get_lvalue() const {
     572        return result->get_lvalue();
     573}
     574
    550575void ConstructorExpr::print( std::ostream & os, Indenter indent ) const {
    551576        os <<  "Constructor Expression: " << std::endl << indent+1;
     
    565590CompoundLiteralExpr::~CompoundLiteralExpr() {
    566591        delete initializer;
     592}
     593
     594bool CompoundLiteralExpr::get_lvalue() const {
     595        assert( result->get_lvalue() );
     596        return true;
    567597}
    568598
     
    616646                result = new VoidType( Type::Qualifiers() );
    617647        }
     648}
     649bool StmtExpr::get_lvalue() const {
     650        return result->get_lvalue();
    618651}
    619652void StmtExpr::print( std::ostream & os, Indenter indent ) const {
  • src/SynTree/Expression.h

    r2c60af75 ref22ad6  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Aug  7 16:56:00 2019
    13 // Update Count     : 51
     12// Last Modified On : Thr Aug 15 13:46:00 2019
     13// Update Count     : 54
    1414//
    1515
     
    7171        const Type * get_result() const { return result; }
    7272        void set_result( Type * newValue ) { result = newValue; }
    73         bool get_lvalue() const;
     73        virtual bool get_lvalue() const;
    7474
    7575        TypeSubstitution * get_env() const { return env; }
     
    9999        virtual ~ApplicationExpr();
    100100
     101        bool get_lvalue() const final;
     102
    101103        Expression * get_function() const { return function; }
    102104        void set_function( Expression * newValue ) { function = newValue; }
     
    121123        UntypedExpr( const UntypedExpr & other );
    122124        virtual ~UntypedExpr();
     125
     126        bool get_lvalue() const final;
    123127
    124128        Expression * get_function() const { return function; }
     
    209213        virtual ~CastExpr();
    210214
     215        bool get_lvalue() const final;
     216
    211217        Expression * get_arg() const { return arg; }
    212218        void set_arg( Expression * newValue ) { arg = newValue; }
     
    292298        virtual ~MemberExpr();
    293299
     300        bool get_lvalue() const final;
     301
    294302        DeclarationWithType * get_member() const { return member; }
    295303        void set_member( DeclarationWithType * newValue ) { member = newValue; }
     
    314322        VariableExpr( const VariableExpr & other );
    315323        virtual ~VariableExpr();
     324
     325        bool get_lvalue() const final;
    316326
    317327        DeclarationWithType * get_var() const { return var; }
     
    501511        virtual ~ConditionalExpr();
    502512
     513        bool get_lvalue() const final;
     514
    503515        Expression * get_arg1() const { return arg1; }
    504516        void set_arg1( Expression * newValue ) { arg1 = newValue; }
     
    525537        virtual ~CommaExpr();
    526538
     539        bool get_lvalue() const final;
     540
    527541        Expression * get_arg1() const { return arg1; }
    528542        void set_arg1( Expression * newValue ) { arg1 = newValue; }
     
    611625        ~ConstructorExpr();
    612626
     627        bool get_lvalue() const final;
     628
    613629        Expression * get_callExpr() const { return callExpr; }
    614630        void set_callExpr( Expression * newValue ) { callExpr = newValue; }
     
    629645        CompoundLiteralExpr( const CompoundLiteralExpr & other );
    630646        virtual ~CompoundLiteralExpr();
     647
     648        bool get_lvalue() const final;
    631649
    632650        Initializer * get_initializer() const { return initializer; }
     
    687705        virtual ~TupleExpr();
    688706
     707        bool get_lvalue() const final;
     708
    689709        std::list<Expression*>& get_exprs() { return exprs; }
    690710
     
    705725        TupleIndexExpr( const TupleIndexExpr & other );
    706726        virtual ~TupleIndexExpr();
     727
     728        bool get_lvalue() const final;
    707729
    708730        Expression * get_tuple() const { return tuple; }
     
    754776        StmtExpr( const StmtExpr & other );
    755777        virtual ~StmtExpr();
     778
     779        bool get_lvalue() const final;
    756780
    757781        CompoundStmt * get_statements() const { return statements; }
  • src/SynTree/TupleExpr.cc

    r2c60af75 ref22ad6  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Mar 17 09:42:29 2017
    13 // Update Count     : 3
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Wed Aug 14 14:34:00 2019
     13// Update Count     : 5
    1414//
    1515
     
    5757}
    5858
     59bool TupleExpr::get_lvalue() const {
     60        return result->get_lvalue();
     61}
     62
    5963void TupleExpr::print( std::ostream &os, Indenter indent ) const {
    6064        os << "Tuple:" << std::endl;
     
    7680TupleIndexExpr::~TupleIndexExpr() {
    7781        delete tuple;
     82}
     83
     84bool TupleIndexExpr::get_lvalue() const {
     85        assert( result->get_lvalue() );
     86        return true;
    7887}
    7988
  • src/main.cc

    r2c60af75 ref22ad6  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 22 13:06:18 2019
    13 // Update Count     : 605
     12// Last Modified On : Fri Aug 23 06:50:08 2019
     13// Update Count     : 607
    1414//
    1515
     
    1717#include <execinfo.h>                       // for backtrace, backtrace_symbols
    1818#include <getopt.h>                         // for no_argument, optind, geto...
    19 #include <signal.h>                         // for signal, SIGABRT, SIGSEGV
    2019#include <cassert>                          // for assertf
    2120#include <cstdio>                           // for fopen, FILE, fclose, stdin
    2221#include <cstdlib>                          // for exit, free, abort, EXIT_F...
     22#include <csignal>                         // for signal, SIGABRT, SIGSEGV
    2323#include <cstring>                          // for index
    2424#include <fstream>                          // for ofstream
     
    9696DeclarationNode * parseTree = nullptr;                                  // program parse tree
    9797
     98static bool waiting_for_gdb = false;                                    // flag to set cfa-cpp to wait for gdb on start
     99
    98100static std::string PreludeDirector = "";
    99101
     
    167169} // sigAbortHandler
    168170
    169 
    170171int main( int argc, char * argv[] ) {
    171172        FILE * input;                                                                           // use FILE rather than istream because yyin is FILE
     
    184185        parse_cmdline( argc, argv );                                            // process command-line arguments
    185186        CodeGen::FixMain::setReplaceMain( !nomainp );
     187
     188        if ( waiting_for_gdb ) {
     189                std::cerr << "Waiting for gdb" << std::endl;
     190                std::cerr << "run :" << std::endl;
     191                std::cerr << "  gdb attach " << getpid() << std::endl;
     192                raise(SIGSTOP);
     193        } // if
    186194
    187195        try {
     
    445453        { "statistics", required_argument, nullptr, 'S' },
    446454        { "tree", no_argument, nullptr, 't' },
     455        { "gdb", no_argument, nullptr, 'g' },
    447456        { "", no_argument, nullptr, 0 },                                        // -w
    448457        { "", no_argument, nullptr, 0 },                                        // -W
     
    462471        "<directory> prelude directory for debug/nodebug",      // no flag
    463472        "<option-list> enable profiling information:\n          counters,heap,time,all,none", // -S
    464         "build in tree",                                                                        // -t
     473        "building cfa standard lib",                                                                    // -t
     474        "wait for gdb to attach",                                                                       // -g
    465475        "",                                                                                                     // -w
    466476        "",                                                                                                     // -W
     
    572582                        Stats::parse_params( optarg );
    573583                        break;
    574                   case 't':                                                                             // build in tree
     584                  case 't':                                                                             // building cfa stdlib
    575585                        treep = true;
     586                        break;
     587                  case 'g':                                                                             // wait for gdb
     588                        waiting_for_gdb = true;
    576589                        break;
    577590                  case 'w':                                                                             // suppress all warnings, hidden
Note: See TracChangeset for help on using the changeset viewer.