Changeset 5546eee4 for src/AST


Ignore:
Timestamp:
Dec 16, 2023, 1:01:44 AM (2 years ago)
Author:
JiadaL <j82liang@…>
Branches:
master, stuck-waitfor-destruct
Children:
b7898ac
Parents:
0fa0201d (diff), 69ab896 (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 plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
src/AST
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Decl.cpp

    r0fa0201d r5546eee4  
    99// Author           : Aaron B. Moss
    1010// Created On       : Thu May 9 10:00:00 2019
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Thu May  5 12:10:00 2022
    13 // Update Count     : 24
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Dec  9 16:28:51 2023
     13// Update Count     : 31
    1414//
    1515
     
    113113// --- EnumDecl
    114114
    115 bool EnumDecl::valueOf( const Decl * enumerator, long long& value ) const {
     115bool EnumDecl::valueOf( const Decl * enumerator, long long & value ) const {
    116116        if ( enumValues.empty() ) {
    117117                Evaluation crntVal = {0, true, true};  // until expression is given, we know to start counting from 0
    118118                for ( const Decl * member : members ) {
    119                         const ObjectDecl* field = strict_dynamic_cast< const ObjectDecl* >( member );
     119                        const ObjectDecl * field = strict_dynamic_cast< const ObjectDecl * >( member );
    120120                        if ( field->init ) {
    121                                 const SingleInit * init = strict_dynamic_cast< const SingleInit* >( field->init.get() );
     121                                const SingleInit * init = strict_dynamic_cast< const SingleInit * >( field->init.get() );
    122122                                crntVal = eval( init->value );
    123123                                if ( ! crntVal.isEvaluableInGCC ) {
    124                                         SemanticError( init->location, ::toString( "Non-constexpr in initialization of "
    125                                                 "enumerator: ", field ) );
     124                                        SemanticError( init->location, "Non-constexpr in initialization of enumerator %s", field->name.c_str() );
    126125                                }
    127126                        }
    128127                        if ( enumValues.count( field->name ) != 0 ) {
    129                                 SemanticError( location, ::toString( "Enum ", name, " has multiple members with the "   "name ", field->name ) );
     128                                SemanticError( location, "Enum %s has multiple members with %s", name.c_str(), field->name.c_str() );
    130129                        }
    131130                        if (crntVal.hasKnownValue) {
  • src/AST/Expr.cpp

    r0fa0201d r5546eee4  
    99// Author           : Aaron B. Moss
    1010// Created On       : Wed May 15 17:00:00 2019
    11 // Last Modified By : Andrew Beach
     11// Last Modified By : Peter A. Buhr
    1212// Created On       : Wed May 18 13:56:00 2022
    13 // Update Count     : 8
     13// Update Count     : 12
    1414//
    1515
     
    168168                        return addrType( refType->base );
    169169                } else {
    170                         SemanticError( loc, arg->result.get(),
    171                                 "Attempt to take address of non-lvalue expression: " );
     170                        SemanticError( loc, "Attempt to take address of non-lvalue expression %s",
     171                                                   toString( arg->result.get() ).c_str() );
    172172                }
    173173        }
     
    240240                return 1;
    241241        }
    242         SemanticError( this, "Constant expression of non-integral type " );
     242        SemanticError( this->location, "Constant expression of non-integral type %s",
     243                                   toString( this ).c_str() );
    243244}
    244245
  • src/AST/LinkageSpec.cpp

    r0fa0201d r5546eee4  
    99// Author           : Aaron B. Moss
    1010// Created On       : Thu May 9 10:00:00 2019
    11 // Last Modified By : Aaron B. Moss
    12 // Last Modified On : Thu May 9 10:00:00 2019
    13 // Update Count     : 1
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Dec 11 16:08:58 2023
     13// Update Count     : 2
    1414//
    1515
     
    3737                return spec;
    3838        } else {
    39                 SemanticError( loc, "Invalid linkage specifier " + *cmd );
     39                SemanticError( loc, "Invalid linkage specifier %s", cmd->c_str() );
    4040        }
    4141}
  • src/AST/TypeSubstitution.hpp

    r0fa0201d r5546eee4  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Thr May 25 12:31:00 2023
    13 // Update Count     : 10
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Dec 11 16:07:30 2023
     13// Update Count     : 15
    1414//
    1515
     
    156156                                } // if
    157157                        } else {
    158                                 SemanticError( formal, toString( "Attempt to provide non-type parameter: ", toString( *actualIt ).c_str(), " for type parameter " ) );
     158                                SemanticError( formal->location, "Attempt to provide non-type parameter %s for type parameter %s",
     159                                                           toString( *actualIt ).c_str(), formal->name.c_str() );
    159160                        } // if
    160161                } else {
Note: See TracChangeset for help on using the changeset viewer.