Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Lvalue.cc

    r9306559f rb4f8808  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Dec 13 23:14:38 2019
    13 // Update Count     : 7
     12// Last Modified On : Fri Mar 17 09:11:18 2017
     13// Update Count     : 5
    1414//
    1515
     
    1717#include <string>                        // for string
    1818
    19 #include "Common/UniqueName.h"
    2019#include "Common/PassVisitor.h"
    2120#include "GenPoly.h"                     // for isPolyType
     
    2322
    2423#include "InitTweak/InitTweak.h"
     24#include "Parser/LinkageSpec.h"          // for Spec, isBuiltin, Intrinsic
    2525#include "ResolvExpr/TypeEnvironment.h"  // for AssertionSet, OpenVarSet
    2626#include "ResolvExpr/Unify.h"            // for unify
    2727#include "ResolvExpr/typeops.h"
    2828#include "SymTab/Indexer.h"              // for Indexer
    29 #include "SynTree/LinkageSpec.h"         // for Spec, isBuiltin, Intrinsic
    3029#include "SynTree/Declaration.h"         // for Declaration, FunctionDecl
    3130#include "SynTree/Expression.h"          // for Expression, ConditionalExpr
     
    6160                }
    6261
    63                 struct ReferenceConversions final : public WithStmtsToAdd, public WithGuards {
     62                struct ReferenceConversions final : public WithStmtsToAdd {
    6463                        Expression * postmutate( CastExpr * castExpr );
    6564                        Expression * postmutate( AddressExpr * addrExpr );
     
    7271
    7372                struct FixIntrinsicResult final : public WithGuards {
    74                         enum {
    75                                 NoSkip,
    76                                 Skip,
    77                                 SkipInProgress
    78                         } skip = NoSkip;
    79 
    80                         void premutate( AsmExpr * ) { GuardValue( skip ); skip = Skip; }
    81                         void premutate( ApplicationExpr * ) { GuardValue( skip ); skip = (skip == Skip) ? SkipInProgress : NoSkip; }
    82 
    83 
    8473                        Expression * postmutate( ApplicationExpr * appExpr );
    8574                        void premutate( FunctionDecl * funcDecl );
     
    173162
    174163                Expression * FixIntrinsicResult::postmutate( ApplicationExpr * appExpr ) {
    175                         if ( skip != SkipInProgress && isIntrinsicReference( appExpr ) ) {
     164                        if ( isIntrinsicReference( appExpr ) ) {
    176165                                // eliminate reference types from intrinsic applications - now they return lvalues
    177166                                ReferenceType * result = strict_dynamic_cast< ReferenceType * >( appExpr->result );
Note: See TracChangeset for help on using the changeset viewer.