Ignore:
Timestamp:
Mar 14, 2017, 4:57:43 PM (7 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, 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:
e61a35e
Parents:
08d5507b
Message:

change type of type qualifiers to bit fields and fix uninitialized fields in aggregate

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/TypeData.cc

    r08d5507b re496303  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Mar  7 08:08:21 2017
    13 // Update Count     : 538
     12// Last Modified On : Tue Mar 14 15:01:44 2017
     13// Update Count     : 548
    1414//
    1515
     
    2626using namespace std;
    2727
    28 TypeData::TypeData( Kind k ) : kind( k ), base( nullptr ), forall( nullptr ) {
     28TypeData::TypeData( Kind k ) : kind( k ), base( nullptr ), forall( nullptr ) /*, PTR1( (void*)(0xdeadbeefdeadbeef)), PTR2( (void*)(0xdeadbeefdeadbeef) ) */ {
    2929        switch ( kind ) {
    3030          case Unknown:
     
    5050                function.newStyle = false;
    5151                break;
     52                // Enum is an Aggregate, so both structures are initialized together.
     53          case Enum:
     54                // enumeration = new Enumeration_t;
     55                enumeration.name = nullptr;
     56                enumeration.constants = nullptr;
     57                enumeration.body = false;
    5258          case Aggregate:
    5359                // aggregate = new Aggregate_t;
     
    6369                aggInst.params = nullptr;
    6470                aggInst.hoistType = false;;
    65                 break;
    66           case Enum:
    67                 // enumeration = new Enumeration_t;
    68                 enumeration.name = nullptr;
    69                 enumeration.constants = nullptr;
    70                 enumeration.body = false;
    7171                break;
    7272          case Symbolic:
     
    494494Type::Qualifiers buildQualifiers( const TypeData * td ) {
    495495        Type::Qualifiers q;
    496         q.isConst = td->typeQualifiers[ DeclarationNode::Const ];
    497         q.isVolatile = td->typeQualifiers[ DeclarationNode::Volatile ];
    498         q.isRestrict = td->typeQualifiers[ DeclarationNode::Restrict ];
    499         q.isLvalue = td->typeQualifiers[ DeclarationNode::Lvalue ];
    500         q.isAtomic = td->typeQualifiers[ DeclarationNode::Atomic ];;
     496        q.isConst = td->typeQualifiers.is_const;
     497        q.isVolatile = td->typeQualifiers.is_volatile;
     498        q.isRestrict = td->typeQualifiers.is_restrict;
     499        q.isLvalue = td->typeQualifiers.is_lvalue;
     500        q.isAtomic = td->typeQualifiers.is_atomic;
    501501        return q;
    502502} // buildQualifiers
Note: See TracChangeset for help on using the changeset viewer.