Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/working/exception/translate.c

    r35ba584c r465ed18  
    22 *
    33 * Note that these are not final. Names, syntax and the exact translation
    4  * will be updated. The first section is the shared definitions, not generated
    5  * by the local translations but used by the translated code.
    6  *
    7  * Most of these exist only after translation (in C code). The first (the
    8  * exception type) has to exist in Cforall code so that it can be used
    9  * directly in Cforall. The two __throw_* functions might have wrappers in
    10  * Cforall, but the underlying functions should probably be C. struct
    11  * stack_exception_data has to exist inside of the coroutine data structures
    12  * and so should be compiled as they are.
     4 * will be updated. The first section is the shared definitions we will have
     5 * to have access to where the translations are preformed.
    136 */
    147
    15 // Currently it is a typedef for int, but later it will be a new type.
     8// Currently it is a typedef for int, but later it will be the root of the
     9// hierarchy and so have to be public.
    1610typedef int exception;
    1711
     12// These might be given simpler names and made public.
    1813void __throw_terminate(exception except) __attribute__((noreturn));
    1914void __throw_resume(exception except);
     
    5449
    5550__throw_resume(exception_instance);
    56 
    57 
    58 
    59 // Rethrows (inside matching handlers):
    60 "Cforall"
    61 
    62 throw;
    63 
    64 resume;
    65 
    66 "C"
    67 
    68 __rethrow_terminate();
    69 
    70 return false;
    7151
    7252
     
    252232                }
    253233                void finally1() {
    254                         // Finally, because of timing, also works for resume.
    255                         // However this might not actually be better in any way.
     234                        // (Finally, because of timing, also work for resume.)
    256235                        __try_resume_cleanup();
    257236
Note: See TracChangeset for help on using the changeset viewer.