aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrison Venn <gvenn.cfe.dev@gmail.com>2011-09-22 14:07:50 +0000
committerGarrison Venn <gvenn.cfe.dev@gmail.com>2011-09-22 14:07:50 +0000
commitaae66fad0566c89f26ab0c9ca92c93f803bbfb3a (patch)
tree6fef9073d2c000ed35126046347c8898280d09b9
parentadf01b3f18442ae8db6b8948e70d82d9df415119 (diff)
This is a hack to get the demo working with the new 3.0 exception
infrastructure. As this makes the demo no longer a demo, and especially not a demo on how to use the llvm exception mechanism, this hack will shortly be changed to use the new 3.0 exception infrastructure. However for the time being this demo is an example on how to use the AutoUpgrade UpgradeExceptionHandling(...) function on < 3.0 exception handling code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140301 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--examples/ExceptionDemo/ExceptionDemo.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/examples/ExceptionDemo/ExceptionDemo.cpp b/examples/ExceptionDemo/ExceptionDemo.cpp
index 360407abb6..9e823168e2 100644
--- a/examples/ExceptionDemo/ExceptionDemo.cpp
+++ b/examples/ExceptionDemo/ExceptionDemo.cpp
@@ -62,6 +62,9 @@
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/TargetSelect.h"
+// FIXME: See use of UpgradeExceptionHandling(...) below
+#include "llvm/AutoUpgrade.h"
+
// FIXME: Although all systems tested with (Linux, OS X), do not need this
// header file included. A user on ubuntu reported, undefined symbols
// for stderr, and fprintf, and the addition of this include fixed the
@@ -1341,6 +1344,17 @@ llvm::Function *createCatchWrappedInvokeFunction(llvm::Module &module,
catchBlocks[nextTypeToCatch]);
}
+ // FIXME: This is a hack to get the demo working with the new 3.0 exception
+ // infrastructure. As this makes the demo no longer a demo, and
+ // especially not a demo on how to use the llvm exception mechanism,
+ // this hack will shortly be changed to use the new 3.0 exception
+ // infrastructure. However for the time being this demo is an
+ // example on how to use the AutoUpgrade UpgradeExceptionHandling(...)
+ // function on < 3.0 exception handling code.
+ //
+ // Must be run before verifier
+ UpgradeExceptionHandling(&module);
+
llvm::verifyFunction(*ret);
fpm.run(*ret);
@@ -1981,10 +1995,10 @@ int main(int argc, char *argv[]) {
// Generate test code using function throwCppException(...) as
// the function which throws foreign exceptions.
llvm::Function *toRun =
- createUnwindExceptionTest(*module,
- theBuilder,
- fpm,
- "throwCppException");
+ createUnwindExceptionTest(*module,
+ theBuilder,
+ fpm,
+ "throwCppException");
fprintf(stderr, "\nBegin module dump:\n\n");