Skip to content

Instantly share code, notes, and snippets.

@carlokok
Created October 19, 2016 11:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carlokok/8c6c1f292d39cd3b6ad533350c36d893 to your computer and use it in GitHub Desktop.
Save carlokok/8c6c1f292d39cd3b6ad533350c36d893 to your computer and use it in GitHub Desktop.
extern void rthrow(int n);
class CCleanup {
public:
~CCleanup() {}
};
int main() {
// State = -1
rthrow(1);
try
{
// state = 0
rthrow(7);
{
CCleanup x; // finally
// state = 1
rthrow(9);
}
// state = 0
rthrow(8);
} catch (int* v)
{
rthrow(3);
}
// state = -1
rthrow(4);
return 0;
}
/*
EHTable:
L__ehtable$main:
.long 429065506 # MagicNumber
.long 3 # MaxState
.long ($stateUnwindMap$main) # UnwindMap
.long 1 # NumTryBlocks
.long ($tryMap$main) # TryBlockMap
.long 0 # IPMapEntries
.long 0 # IPToStateXData
.long 0 # ESTypeList
.long 1 # EHFlags
$stateUnwindMap$main:
.long -1 # ToState
.long 0 # Action
.long 0 # ToState
.long "?dtor$7@?0?main@4HA" # Action
.long -1 # ToState
.long 0 # Action
$tryMap$main:
.long 0 # TryLow
.long 1 # TryHigh
.long 2 # CatchHigh
.long 1 # NumCatches
.long ($handlerMap$0$main) # HandlerArray
$handlerMap$0$main:
.long 0 # Adjectives
.long "??_R0PAH@8" # Type
.long -28 # CatchObjOffset
.long "?catch$3@?0?main@4HA" # Handler
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment