[PATCH] Don't crash on leaving nested __finally blocks through an EH edge.

Nico Weber thakis at chromium.org
Thu Feb 26 13:55:53 PST 2015


Hi rnk,

The __finally emission block tries to be clever by removing unused continuation edges if there's an unconditional jump out of the __finally block. With exception edges, the EH continuation edge isn't always unused though and we'd crash in a few places.

Just don't be clever. That makes the IR for __finally blocks a bit longer in some cases (hence small and behavior-preserving changes to existing tests), but it makes no difference in general and it fixes the last crash from PR22553.

http://reviews.llvm.org/D7918

Files:
  lib/CodeGen/CGException.cpp
  test/CodeGen/exceptions-seh-finally.c
  test/CodeGen/exceptions-seh-leave.c

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7918.20794.patch
Type: text/x-patch
Size: 6071 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150226/c0114685/attachment.bin>


More information about the cfe-commits mailing list