- Timestamp:
- Jun 7, 2021, 2:09:12 PM (5 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum, stuck-waitfor-destruct
- Children:
- 5a46e09
- Parents:
- 82f4063 (diff), 53692b3 (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. - Location:
- src
- Files:
-
- 5 edited
-
AST/Pass.proto.hpp (modified) (1 diff)
-
AST/Type.hpp (modified) (3 diffs)
-
AST/TypeEnvironment.cpp (modified) (1 diff)
-
CodeTools/ResolvProtoDump.cc (modified) (1 diff)
-
main.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Pass.proto.hpp
r82f4063 rbae0d35 119 119 template<typename core_t, typename node_t> 120 120 struct is_valid_previsit { 121 using ret_t = decltype( ((core_t*)nullptr)->previsit( (const node_t *)nullptr) );121 using ret_t = decltype( std::declval<core_t*>()->previsit( std::declval<const node_t *>() ) ); 122 122 123 123 static constexpr bool value = std::is_void< ret_t >::value || -
src/AST/Type.hpp
r82f4063 rbae0d35 402 402 403 403 // compact representation used for map lookups. 404 struct TypeEnvKey { 405 const TypeDecl * base ;406 int formal_usage ;407 int expr_id ;404 struct TypeEnvKey { 405 const TypeDecl * base = nullptr; 406 int formal_usage = 0; 407 int expr_id = 0; 408 408 409 409 TypeEnvKey() = default; … … 440 440 const Type * accept( Visitor & v ) const override { return v.visit( this ); } 441 441 442 std::string typeString() const { 443 if (formal_usage > 0) return std::string("_") + std::to_string(formal_usage) + "_" + std::to_string(expr_id) + "_" + name; 442 std::string typeString() const { 443 if (formal_usage > 0) return std::string("_") + std::to_string(formal_usage) + "_" + std::to_string(expr_id) + "_" + name; 444 444 else return name; 445 445 } … … 548 548 res = p * res + x.expr_id; 549 549 return res; 550 } 550 } 551 551 }; 552 552 } -
src/AST/TypeEnvironment.cpp
r82f4063 rbae0d35 115 115 116 116 void TypeEnvironment::add( const TypeSubstitution & sub ) { 117 for ( const auto p : sub ) {117 for ( const auto & p : sub ) { 118 118 add( EqvClass{ p.first, p.second } ); 119 119 } -
src/CodeTools/ResolvProtoDump.cc
r82f4063 rbae0d35 746 746 // print child scopes 747 747 ++indent; 748 for ( const P assVisitor<ProtoDump>& s : subs ) {748 for ( const ProtoDump & s : subs ) { 749 749 std::cout << tab << '{' << std::endl; 750 s.p ass.print( indent );750 s.print( indent ); 751 751 std::cout << tab << '}' << std::endl; 752 752 } -
src/main.cc
r82f4063 rbae0d35 160 160 #define SIGPARMS int sig __attribute__(( unused )), siginfo_t * sfp __attribute__(( unused )), ucontext_t * cxt __attribute__(( unused )) 161 161 162 static void Signal( int sig, void (* handler)(SIGPARMS), int flags ) { 163 struct sigaction act; 164 165 act.sa_sigaction = (void (*)(int, siginfo_t *, void *))handler; 162 static void _Signal(struct sigaction & act, int sig, int flags ) { 166 163 act.sa_flags = flags; 167 164 … … 170 167 _exit( EXIT_FAILURE ); 171 168 } // if 169 } 170 171 static void Signal( int sig, void (* handler)(SIGPARMS), int flags ) { 172 struct sigaction act; 173 act.sa_sigaction = (void (*)(int, siginfo_t *, void *))handler; 174 _Signal(act, sig, flags); 175 } // Signal 176 177 static void Signal( int sig, void (* handler)(int), int flags ) { 178 struct sigaction act; 179 act.sa_handler = handler; 180 _Signal(act, sig, flags); 172 181 } // Signal 173 182 … … 202 211 static void sigAbortHandler( SIGPARMS ) { 203 212 backtrace( 6 ); // skip first 6 stack frames 204 Signal( SIGABRT, (void (*)(SIGPARMS))SIG_DFL, SA_SIGINFO ); // reset default signal handler213 Signal( SIGABRT, SIG_DFL, SA_SIGINFO ); // reset default signal handler 205 214 raise( SIGABRT ); // reraise SIGABRT 206 215 } // sigAbortHandler
Note:
See TracChangeset
for help on using the changeset viewer.