Changeset c529a24 for doc/working/exception/impl/test-main.c
- Timestamp:
- Jun 16, 2017, 4:36:00 PM (6 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:
- 365d553c
- Parents:
- 0892b1b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/working/exception/impl/test-main.c
r0892b1b rc529a24 6 6 #include <stdbool.h> 7 7 8 // Translation Helpers: 9 #define CLEANUP(function) \ 10 struct __cleanup_hook __hidden_hook __attribute__((cleanup(function))) 11 12 #define SET_UP_RESUME_NODE(handler_function) \ 13 struct __try_resume_node node \ 14 __attribute__((cleanup(__try_resume_node_delete))); \ 15 __try_resume_node_new(&node, handler_function) 16 8 // Helps with manual translation. It may or may not get folded into the 9 // header, that depends on how it interacts with concurancy. 17 10 void __try_resume_node_new(struct __try_resume_node * node, 18 11 _Bool (*handler)(exception except)) { … … 20 13 shared_stack.top_resume = node; 21 14 node->try_to_handle = handler; 22 }23 24 void __try_resume_node_delete(struct __try_resume_node * node) {25 shared_stack.top_resume = node->next;26 15 } 27 16 … … 122 111 } 123 112 struct __try_resume_node node 124 __attribute__((cleanup(__try_resume_ node_delete)));113 __attribute__((cleanup(__try_resume_cleanup))); 125 114 __try_resume_node_new(&node, beta_handle1); 126 115 { … … 144 133 } 145 134 struct __try_resume_node node 146 __attribute__((cleanup(__try_resume_ node_delete)));135 __attribute__((cleanup(__try_resume_cleanup))); 147 136 __try_resume_node_new(&node, alpha_handle1); 148 137 { … … 260 249 } 261 250 struct __try_resume_node node 262 __attribute__((cleanup(__try_resume_ node_delete)));251 __attribute__((cleanup(__try_resume_cleanup))); 263 252 __try_resume_node_new(&node, fn_handle1); 264 253 { … … 279 268 } 280 269 struct __try_resume_node node 281 __attribute__((cleanup(__try_resume_ node_delete)));270 __attribute__((cleanup(__try_resume_cleanup))); 282 271 __try_resume_node_new(&node, fn_handle1); 283 272 { … … 349 338 } 350 339 struct __try_resume_node node 351 __attribute__((cleanup(__try_resume_ node_delete)));340 __attribute__((cleanup(__try_resume_cleanup))); 352 341 __try_resume_node_new(&node, reresume_handle1); 353 342 { … … 361 350 } 362 351 struct __try_resume_node node 363 __attribute__((cleanup(__try_resume_ node_delete)));352 __attribute__((cleanup(__try_resume_cleanup))); 364 353 __try_resume_node_new(&node, reresume_handle2); 365 354 { … … 409 398 } 410 399 struct __try_resume_node node 411 __attribute__((cleanup(__try_resume_ node_delete)));400 __attribute__((cleanup(__try_resume_cleanup))); 412 401 __try_resume_node_new(&node, foe_handle1); 413 402 { … … 456 445 } 457 446 struct __try_resume_node node 458 __attribute__((cleanup(__try_resume_ node_delete)));447 __attribute__((cleanup(__try_resume_cleanup))); 459 448 __try_resume_node_new(&node, fee_handle1); 460 449 {
Note: See TracChangeset
for help on using the changeset viewer.