﻿id	summary	reporter	owner	description	type	status	priority	component	version	resolution	keywords	cc
190	Re-throw-resume incorrectly depends on enclosing function return type	mlbrooks		"{{{
#ifdef WONT_WORK
  #define RETTYPE void
#else
  #define RETTYPE int
#endif

#include <exception.hfa>

TRIVIAL_EXCEPTION( CPU_Fire );

RETTYPE foo() {

    try {
        int x = 1 + 1;
    } catchResume ( CPU_Fire * ) {
        throwResume;
    }
}
}}}

-DWONT_WORK actual:  compiler error at throwResume, from gcc:
{{{
error: void value not ignored as it ought to be
}}}

-DWONT_WORK expected, no-args actual: compiler success, linker error for no main

When the error happens, running gcc on -CFA output shows the error is coming from the `return ((void)0);` line of this function nested in foo.
{{{
_Bool handle(struct __cfaehm_base_exception_t *__exception_inst){
    __attribute__ ((unused)) _Bool __ret_bool;
    {
        struct CPU_Fire *__anonymous_object2220;
        if ( (__anonymous_object2220=((struct CPU_Fire *)__cfa__virtual_cast(((const struct __cfa__parent_vtable *)(&_X25_CPU_Fire_vtable_instanceS15CPU_Fire_vtable_1)), ((const struct __cfa__parent_vtable **)__exception_inst)))) ) {
            return ((void)0);
            return 1;
        }
    }

    return 0;
}
}}}
"	defect	closed	minor	cfa-cc	1.0	fixed		
