llvm with tablegen backend for capstone disassembler
Go to file
Reid Kleckner 7878391208 [WinEH] Add codegen support for cleanuppad and cleanupret
All of the complexity is in cleanupret, and it mostly follows the same
codepaths as catchret, except it doesn't take a return value in RAX.

This small example now compiles and executes successfully on win32:
  extern "C" int printf(const char *, ...) noexcept;
  struct Dtor {
    ~Dtor() { printf("~Dtor\n"); }
  };
  void has_cleanup() {
    Dtor o;
    throw 42;
  }
  int main() {
    try {
      has_cleanup();
    } catch (int) {
      printf("caught it\n");
    }
  }

Don't try to put the cleanup in the same function as the catch, or Bad
Things will happen.

llvm-svn: 247219
2015-09-10 00:25:23 +00:00
clang Fix Clang-tidy misc-use-override warnings, other minor fixes 2015-09-10 00:24:40 +00:00
clang-tools-extra [clang-tidy] Fix PR22785. 2015-09-09 17:06:09 +00:00
compiler-rt [msan] Unpoison dlpi_phdr in dl_iterate_phdr. 2015-09-08 23:14:44 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Update mailing list reference. 2015-08-24 22:43:24 +00:00
libcxx Implementation of Boyer-Moore and Boyer-Moore-Horspool searchers for the LFTS. 2015-09-08 17:59:09 +00:00
libcxxabi Convert LIBCXXABI_BUILD_32_BITS to LLVM_BUILD_32_BITS. 2015-09-01 01:02:06 +00:00
libunwind unwind: cleanup -Wunused-parameter 2015-09-01 04:29:03 +00:00
lld Change the load addr into something that works on linux x86_64. 2015-09-09 22:53:55 +00:00
lldb Fix a small comment typo in Windows Process code. 2015-09-09 22:58:23 +00:00
llgo [llgo] drop debug/DIBuilder.Declare 2015-09-01 11:52:37 +00:00
llvm [WinEH] Add codegen support for cleanuppad and cleanupret 2015-09-10 00:25:23 +00:00
openmp Remove duplicate of num_threads assignment. 2015-09-02 20:28:50 +00:00
polly [PM] Update Polly for the new AA infrastructure landed in r247167. 2015-09-09 22:13:56 +00:00