Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Validate.cc

    rae4c85a r1cbca6e  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 21:50:04 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Aug 05 14:00:24 2015
    13 // Update Count     : 195
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Tue Aug 11 16:59:35 2015
     13// Update Count     : 196
    1414//
    1515
     
    5454#include "MakeLibCfa.h"
    5555#include "TypeEquality.h"
     56#include "ResolvExpr/typeops.h"
    5657
    5758#define debugPrint( x ) if ( doDebug ) { std::cout << x; }
     
    851852                        Type * t1 = tyDecl->get_base();
    852853                        Type * t2 = typedefNames[ tyDecl->get_name() ].first->get_base();
    853                         if ( ! typeEquals( t1, t2, true ) ) {
     854                        if ( ! ResolvExpr::typesCompatible( t1, t2, Indexer() ) ) {
    854855                                throw SemanticError( "cannot redefine typedef: " + tyDecl->get_name() );
    855856                        }
     
    894895                DeclarationWithType *ret = Mutator::mutate( objDecl );
    895896                typedefNames = oldNames;
     897                // is the type a function?
    896898                if ( FunctionType *funtype = dynamic_cast<FunctionType *>( ret->get_type() ) ) {
     899                        // replace the current object declaration with a function declaration
    897900                        return new FunctionDecl( ret->get_name(), ret->get_storageClass(), ret->get_linkage(), funtype, 0, ret->get_isInline(), ret->get_isNoreturn() );
    898901                } else if ( objDecl->get_isInline() || objDecl->get_isNoreturn() ) {
Note: See TracChangeset for help on using the changeset viewer.