Changeset f1b6671 for libcfa


Ignore:
Timestamp:
Apr 6, 2020, 4:41:55 PM (5 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
e276be6
Parents:
057298e
Message:

Unwinding is now handled in exception handling code. That is used to fix one bug, other exception tests added. Noise from the change altered one other test.

Location:
libcfa
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/Makefile.in

    r057298e rf1b6671  
    1 # Makefile.in generated by automake 1.16.1 from Makefile.am.
     1# Makefile.in generated by automake 1.15 from Makefile.am.
    22# @configure_input@
    33
    4 # Copyright (C) 1994-2018 Free Software Foundation, Inc.
     4# Copyright (C) 1994-2014 Free Software Foundation, Inc.
    55
    66# This Makefile.in is free software; the Free Software Foundation
     
    331331            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
    332332          *) \
    333             echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
    334             cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
     333            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
     334            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
    335335        esac;
    336336
     
    377377
    378378
    379 distdir: $(BUILT_SOURCES)
    380         $(MAKE) $(AM_MAKEFLAGS) distdir-am
    381 
    382 distdir-am: $(DISTFILES)
     379distdir: $(DISTFILES)
    383380        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
    384381        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
  • libcfa/src/Makefile.am

    r057298e rf1b6671  
    3333# The built sources must not depend on the installed headers
    3434AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
    35 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
     35AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
    3636AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
    3737CFACC = @CFACC@
  • libcfa/src/Makefile.in

    r057298e rf1b6671  
    456456# The built sources must not depend on the installed headers
    457457AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
    458 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
     458AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
    459459AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
    460460@BUILDLIB_FALSE@headers_nosrc =
  • libcfa/src/exception.c

    r057298e rf1b6671  
    1010// Created On       : Mon Jun 26 15:13:00 2017
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Apr 03 11:57:00 2020
    13 // Update Count     : 14
     12// Last Modified On : Mon Apr 06 14:40:00 2020
     13// Update Count     : 15
    1414//
    1515
     
    7575// RESUMPTION ================================================================
    7676
     77static void reset_top_resume(struct __cfaehm_try_resume_node ** store) {
     78        this_exception_context()->top_resume = *store;
     79}
     80
    7781void __cfaehm_throw_resume(exception_t * except) {
    7882        struct exception_context_t * context = this_exception_context();
     
    8084        __cfaabi_dbg_print_safe("Throwing resumption exception\n");
    8185
     86        __attribute__((cleanup(reset_top_resume)))
    8287        struct __cfaehm_try_resume_node * original_head = context->top_resume;
    8388        struct __cfaehm_try_resume_node * current = context->top_resume;
     
    8691                context->top_resume = current->next;
    8792                if (current->handler(except)) {
    88                         context->top_resume = original_head;
    8993                        return;
    9094                }
     
    9296
    9397        __cfaabi_dbg_print_safe("Unhandled exception\n");
    94         context->top_resume = original_head;
    9598
    9699        // Fall back to termination:
Note: See TracChangeset for help on using the changeset viewer.