- Timestamp:
- Aug 15, 2017, 3:40:39 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:
- 936e9f4
- Parents:
- 3f27b9a
- Location:
- src/tests
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/except-0.c
r3f27b9a rfcc88a4 1 1 // Draft of tests for exception handling. 2 // Outdated: The integer constant exceptions need to be replaced with virtual 3 // exceptions for the new system. 2 4 3 5 // ERROR: exceptions do not interact with ^?{} properly. -
src/tests/except-1.c
r3f27b9a rfcc88a4 1 1 // Draft memory management test. (remember -fexceptions) 2 // Outdated: The integer constant exceptions need to be replaced with virtual 3 // exceptions for the new system. 2 4 3 5 #include <stdio.h> -
src/tests/except-2.c
r3f27b9a rfcc88a4 80 80 } 81 81 num_error_vtable _num_error_vtable_instance @= { 82 & ___cfaehm__base_exception_t_vtable_instance,82 &INSTANCE(BASE_EXCEPT), 83 83 sizeof(num_error), ?{}, ^?{}, 84 84 num_error_msg, num_error_code … … 91 91 yin black; 92 92 throw (BASE_EXCEPT *)&black; 93 } catch ( yin * error ) {93 } catch ( yin * error ) { 94 94 printf("throw yin caught.\n"); 95 95 } … … 99 99 throwResume (BASE_EXCEPT *)&white; 100 100 printf("> throwResume returned.\n"); 101 } catchResume ( yang * error ) {101 } catchResume ( yang * error ) { 102 102 printf("throwResume yang caught <"); 103 103 } 104 104 105 /* Conditional catches are still a work in progress.106 105 try { 107 106 num_error x = { 2 }; 108 throw ( struct exception_t*)&x;107 throw (BASE_EXCEPT *)&x; 109 108 } 110 catch (num_error * error 0 ; 3 == error0->virtual_table->code( error0) ) {111 printf("exception at %p\n", error 0);109 catch (num_error * error ; 3 == error->virtual_table->code( error ) ) { 110 printf("exception at %p\n", error ); 112 111 printf("Should not be printed.\n"); 113 112 } 114 catch (num_error * error 1 ; 2 == error1->virtual_table->code( error1) ) {113 catch (num_error * error ; 2 == error->virtual_table->code( error ) ) { 115 114 printf("Should be printed.\n"); 116 } */115 } 117 116 } 118 117
Note: See TracChangeset
for help on using the changeset viewer.