Changeset 331eacbe for libcfa/src
- Timestamp:
- Mar 5, 2020, 2:40:28 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 87f572e
- Parents:
- 5452673 (diff), f9723e8 (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:
- libcfa/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/containers.hfa
r5452673 r331eacbe 169 169 get_next( *head ) = 0p; 170 170 verify(*this.tail == 1p); 171 verify( get_next(*head) == 0p ); 171 172 return head; 172 173 } -
libcfa/src/concurrency/monitor.cfa
r5452673 r331eacbe 534 534 //Find the thread to run 535 535 $thread * signallee = pop_head( this.blocked )->waiting_thread; 536 /* paranoid */ verify( signallee->next == 0p );537 536 __set_owner( monitors, count, signallee ); 538 537 -
libcfa/src/exception.c
r5452673 r331eacbe 72 72 // Used in the personality function, way down in termination. 73 73 // struct _Unwind_Context * -> _Unwind_Reason_Code(*)(exception_t *) 74 #if defined( __x86_64 ) 74 75 #define MATCHER_FROM_CONTEXT(ptr_to_context) \ 75 76 (*(_Unwind_Reason_Code(**)(exception_t *))(_Unwind_GetCFA(ptr_to_context) + 8)) 76 77 #elif defined( __i386 ) 78 #define MATCHER_FROM_CONTEXT(ptr_to_context) \ 79 (*(_Unwind_Reason_Code(**)(exception_t *))(_Unwind_GetCFA(ptr_to_context) + 24)) 80 #endif 77 81 78 82 // RESUMPTION ================================================================ -
libcfa/src/interpose.cfa
r5452673 r331eacbe 10 10 // Created On : Wed Mar 29 16:10:31 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Feb 17 10:18:53202013 // Update Count : 1 6612 // Last Modified On : Mon Mar 2 17:37:00 2020 13 // Update Count : 176 14 14 // 15 15 … … 143 143 void abort( const char fmt[], ... ) __attribute__(( format(printf, 1, 2), __nothrow__, __leaf__, __noreturn__ )); 144 144 void abort( bool signalAbort, const char fmt[], ... ) __attribute__(( format(printf, 2, 3), __nothrow__, __leaf__, __noreturn__ )); 145 void __abort( bool signalAbort, const char fmt[], va_list args ) __attribute__(( __nothrow__, __leaf__, __noreturn__ )); 145 146 146 147 extern "C" { … … 152 153 va_list argp; 153 154 va_start( argp, fmt ); 154 abort( false, fmt, argp );155 __abort( false, fmt, argp ); 155 156 va_end( argp ); 156 157 } … … 218 219 } 219 220 220 void abort( bool signalAbort, const char fmt[], ... ) { 221 // Cannot forward va_list. 222 void __abort( bool signalAbort, const char fmt[], va_list args ) { 221 223 void * kernel_data = kernel_abort(); // must be done here to lock down kernel 222 224 int len; … … 228 230 229 231 assert( fmt ); 230 va_list args;231 va_start( args, fmt );232 233 232 len = vsnprintf( abort_text, abort_text_size, fmt, args ); 234 va_end( args );235 233 __cfaabi_bits_write( STDERR_FILENO, abort_text, len ); 236 234 … … 248 246 va_list args; 249 247 va_start( args, fmt ); 250 abort( false, fmt, args ); 248 __abort( false, fmt, args ); 249 // CONTROL NEVER REACHES HERE! 251 250 va_end( args ); 251 } 252 253 void abort( bool signalAbort, const char fmt[], ... ) { 254 va_list args; 255 va_start( args, fmt ); 256 __abort( signalAbort, fmt, args ); 257 // CONTROL NEVER REACHES HERE! 258 va_end( args ); 252 259 } 253 260
Note: See TracChangeset
for help on using the changeset viewer.