Changeset 6f71276

Ignore:
Timestamp:
Apr 3, 2017, 2:29:11 PM (5 years ago)
Branches:
aaron-thesis, arm-eh, 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:
bbc9b64
Parents:
8396044 (diff), 7444113 (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 plg2:software/cfa/cfa-cc

Files:
7 edited

Unmodified
Removed
• doc/bibliography/cfa.bib

 r8396044 } @manual{C11, @techreport{C11, type = {International Standard}, keywords    = {ISO/IEC C 11}, contributer = {pabuhr@plg}, key         = {C11}, key         = {{ISO/IEC} 9889-2011}, title       = {American National Standard Information technology -- Programming Languages -- {C}}, organization= {International Standard ISO/IEC 9899-2011[2012]}, publisher   = {International Standard Organization}, institution = {International Standard Organization}, address     = {http://www.iso.org}, year        = 2012, } @manual{C++Concepts, @techreport{C++Concepts, type = {International Standard}, keywords    = {ISO/IEC TS 19217:2015}, contributer = {a3moss@uwaterloo.ca}, key         = {C++ Concepts}, key         = {{ISO/IEC} {TS} 19217}, title       = {Information technology -- Programming languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Extensions for concepts}, organization= {International Standard ISO/IEC TS 19217:2015}, publisher   = {International Standard Organization}, institution = {International Standard Organization}, address     = {http://www.iso.org}, year        = 2015
• doc/generic_types/.gitignore

 r8396044 *.lot *.synctex.gz comment.cut
• doc/generic_types/generic_types.tex

• src/GenPoly/InstantiateGeneric.cc

 r8396044 } assert( baseParam == baseParams.end() && param == params.end() && "Type parameters should match type variables" ); assertf( baseParam == baseParams.end() && param == params.end(), "Type parameters should match type variables" ); return gt; }
• src/ResolvExpr/PtrsCastable.cc

 r8396044 return 1; } int functionCast( Type *src, const TypeEnvironment &env, const SymTab::Indexer &indexer ) { return -1 * objectCast( src, env, indexer );  // reverse the sense of objectCast } int ptrsCastable( Type *src, Type *dest, const TypeEnvironment &env, const SymTab::Indexer &indexer ) { void PtrsCastable::visit(FunctionType *functionType) { result = -1; // result = -1; result = functionCast( dest, env, indexer ); } void PtrsCastable::visit(TypeInstType *inst) { result = objectCast( inst, env, indexer ) > 0 && objectCast( dest, env, indexer ) > 0 ? 1 : -1; //result = objectCast( inst, env, indexer ) > 0 && objectCast( dest, env, indexer ) > 0 ? 1 : -1; result = objectCast( inst, env, indexer ) == objectCast( dest, env, indexer ) ? 1 : -1; }
• src/ResolvExpr/Unify.cc

 r8396044 case TypeDecl::Ftype: return isFtype( type, indexer ); case TypeDecl::Ttype: case TypeDecl::Ttype: // ttype unifies with any tuple type return dynamic_cast< TupleType * >( type ) || Tuples::isTtype( type ); for ( ; it != params.end() && jt != otherParams.end(); ++it, ++jt ) { TypeExpr *param = dynamic_cast< TypeExpr* >(*it); assert(param && "Aggregate parameters should be type expressions"); assertf(param, "Aggregate parameters should be type expressions"); TypeExpr *otherParam = dynamic_cast< TypeExpr* >(*jt); assert(otherParam && "Aggregate parameters should be type expressions"); if ( ! unifyExact( param->get_type(), otherParam->get_type(), env, needAssertions, haveAssertions, openVars, WidenMode(false, false), indexer ) ) { assertf(otherParam, "Aggregate parameters should be type expressions"); Type* paramTy = param->get_type(); Type* otherParamTy = otherParam->get_type(); bool tupleParam = Tuples::isTtype( paramTy ); bool otherTupleParam = Tuples::isTtype( otherParamTy ); if ( tupleParam && otherTupleParam ) { ++it; ++jt;  // skip ttype parameters for break } else if ( tupleParam ) { // bundle other parameters into tuple to match TupleType* binder = new TupleType{ paramTy->get_qualifiers() }; do { binder->get_types().push_back( otherParam->get_type()->clone() ); ++jt; if ( jt == otherParams.end() ) break; otherParam = dynamic_cast< TypeExpr* >(*jt); assertf(otherParam, "Aggregate parameters should be type expressions"); } while (true); otherParamTy = binder; ++it;  // skip ttype parameter for break } else if ( otherTupleParam ) { // bundle parameters into tuple to match other TupleType* binder = new TupleType{ otherParamTy->get_qualifiers() }; do { binder->get_types().push_back( param->get_type()->clone() ); ++it; if ( it == params.end() ) break; param = dynamic_cast< TypeExpr* >(*it); assertf(param, "Aggregate parameters should be type expressions"); } while (true); paramTy = binder; ++jt;  // skip ttype parameter for break } if ( ! unifyExact( paramTy, otherParamTy, env, needAssertions, haveAssertions, openVars, WidenMode(false, false), indexer ) ) { result = false; return; } // ttype parameter should be last if ( tupleParam || otherTupleParam ) break; } result = ( it == params.end() && jt == otherParams.end() );
• src/libcfa/startup.h

 r8396044 #define STARTUP_H #if GCC_VERSION > 50000 extern "C" { enum { }; } #else #define STARTUP_PRIORITY_CORE       101 #define STARTUP_PRIORITY_KERNEL     102 #define STARTUP_PRIORITY_MEMORY     103 #define STARTUP_PRIORITY_IOSTREAM   104 #endif #endif //STARTUP_H
Note: See TracChangeset for help on using the changeset viewer.