Changeset 936a287
- Timestamp:
- Mar 30, 2017, 5:21:14 PM (7 years ago)
- 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:
- 077810d, 72dc82a
- Parents:
- fbcde64 (diff), a4dd728 (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. - Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/LaTeXmacros/common.tex
rfbcde64 r936a287 42 42 \newcommand{\CCfourteen}{\rm C\kern-.1em\hbox{+\kern-.25em+}14\xspace} % C++14 symbolic name 43 43 \newcommand{\CCseventeen}{\rm C\kern-.1em\hbox{+\kern-.25em+}17\xspace} % C++17 symbolic name 44 \newcommand{\CCtwenty}{\rm C\kern-.1em\hbox{+\kern-.25em+}20} % C++20 symbolic name 44 45 \newcommand{\Celeven}{C11\xspace} % C11 symbolic name 45 46 \newcommand{\Csharp}{C\raisebox{0.4ex}{\#}\xspace} % C# symbolic name … … 252 253 _Bool,catch,catchResume,choose,_Complex,__complex,__complex__,__const,__const__,disable,dtype,enable,__extension__, 253 254 fallthrough,fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,one_t,otype,restrict,_Static_assert, 254 _Thread_local,throw,throwResume,trait,try,t ypeof,__typeof,__typeof__,zero_t},255 _Thread_local,throw,throwResume,trait,try,ttype,typeof,__typeof,__typeof__,zero_t}, 255 256 }% 256 257 -
doc/rob_thesis/ctordtor.tex
rfbcde64 r936a287 135 135 % at the global scope (which is likely the most common case) 136 136 % * [9] 137 138 % Move semantics139 % * <ongoing discussion about this. this will be filled in140 % once we come to a consensus>141 137 142 138 % Changes to polymorphic type classes -
doc/rob_thesis/tuples.tex
rfbcde64 r936a287 615 615 \end{cfacode} 616 616 Note that due to flattening, @x@ used in the argument position is converted into the list of its fields. 617 In the call to @f@, athe second and third argument components are structured into a tuple argument.617 In the call to @f@, the second and third argument components are structured into a tuple argument. 618 618 619 619 Expressions which may contain side effects are made into \emph{unique expressions} before being expanded by the flattening conversion. … … 643 643 \end{cfacode} 644 644 Since argument evaluation order is not specified by the C programming language, this scheme is built to work regardless of evaluation order. 645 The first time a unique expression is executed, the actual expression is evaluated and the accompanying boolean is trueto true.645 The first time a unique expression is executed, the actual expression is evaluated and the accompanying boolean is set to true. 646 646 Every subsequent evaluation of the unique expression then results in an access to the stored result of the actual expression. 647 647 … … 1299 1299 Thunks 0 through 3 provide wrappers for the @otype@ parameters for @const char *@, while @_thunk4@ translates a call to @print([int, const char *])@ into a call to @print_variadic(int, [const char *])@. 1300 1300 This all builds to a call to @print_variadic@, with the appropriate copy construction of the tuple argument. 1301 1302 \section{Future Work} -
src/InitTweak/FixInit.cc
rfbcde64 r936a287 738 738 stmtsToAddAfter.push_back( ifStmt ); 739 739 740 if ( ctorInit->get_dtor() ) { 740 Statement * dtor = ctorInit->get_dtor(); 741 objDecl->set_init( NULL ); 742 ctorInit->set_ctor( NULL ); 743 ctorInit->set_dtor( nullptr ); 744 if ( dtor ) { 741 745 // if the object has a non-trivial destructor, have to 742 746 // hoist it and the object into the global space and 743 747 // call the destructor function with atexit. 744 748 745 Statement * dtorStmt = ctorInit->get_dtor()->clone();749 Statement * dtorStmt = dtor->clone(); 746 750 747 751 // void __objName_dtor_atexitN(...) {...} … … 772 776 objDecl->set_mangleName( SymTab::Mangler::mangle( objDecl ) ); 773 777 774 objDecl->set_init( NULL );775 ctorInit->set_ctor( NULL );776 delete ctorInit;777 778 778 // xxx - temporary hack: need to return a declaration, but want to hoist the current object out of this scope 779 779 // create a new object which is never used 780 780 static UniqueName dummyNamer( "_dummy" ); 781 781 ObjectDecl * dummy = new ObjectDecl( dummyNamer.newName(), Type::StorageClasses( Type::Static ), LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new VoidType( Type::Qualifiers() ) ), 0, std::list< Attribute * >{ new Attribute("unused") } ); 782 delete ctorInit; 782 783 return dummy; 783 784 } -
src/InitTweak/GenInit.cc
rfbcde64 r936a287 294 294 handleDWT( objDecl ); 295 295 // hands off if @=, extern, builtin, etc. 296 // if global but initializer is not constexpr, always try to construct, since this is not legal C297 if ( ( tryConstruct( objDecl ) && isManaged( objDecl ) ) || (! inFunction && ! isConstExpr( objDecl->get_init() ) ) ) {296 // even if unmanaged, try to construct global or static if initializer is not constexpr, since this is not legal C 297 if ( tryConstruct( objDecl ) && ( isManaged( objDecl ) || ((! inFunction || objDecl->get_storageClasses().is_static ) && ! isConstExpr( objDecl->get_init() ) ) ) ) { 298 298 // constructed objects cannot be designated 299 if ( isDesignated( objDecl->get_init() ) ) throw SemanticError( "Cannot include designations in the initializer for a managed Object. If this is really what you want, then initialize with @=. ", objDecl );299 if ( isDesignated( objDecl->get_init() ) ) throw SemanticError( "Cannot include designations in the initializer for a managed Object. If this is really what you want, then initialize with @=.\n", objDecl ); 300 300 // constructed objects should not have initializers nested too deeply 301 301 if ( ! checkInitDepth( objDecl ) ) throw SemanticError( "Managed object's initializer is too deep ", objDecl ); -
src/libcfa/iostream.c
rfbcde64 r936a287 154 154 ostype * ?|?( ostype * os, const char * cp ) { 155 155 enum { Open = 1, Close, OpenClose }; 156 static const unsigned char mask[256] = {156 static const unsigned char mask[256] @= { 157 157 // opening delimiters, no space after 158 158 ['('] : Open, ['['] : Open, ['{'] : Open,
Note: See TracChangeset
for help on using the changeset viewer.