diff options
| author | Jim Ingham <jingham@apple.com> | 2012-03-06 03:52:02 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2012-03-06 03:52:02 +0000 |
| commit | 97f7e8189149390ea4eb3daa46fac132dbb5183e (patch) | |
| tree | b7f04b598e7b36788ffcfc25e1583cecd291d575 /lldb/test/lang/cpp/exceptions/exceptions.cpp | |
| parent | 7856d7a671d2ac49b3f9ad297237441f2befc072 (diff) | |
| download | bcm5719-llvm-97f7e8189149390ea4eb3daa46fac132dbb5183e.tar.gz bcm5719-llvm-97f7e8189149390ea4eb3daa46fac132dbb5183e.zip | |
Add a test case and fix the C++ exception symbols.
llvm-svn: 152101
Diffstat (limited to 'lldb/test/lang/cpp/exceptions/exceptions.cpp')
| -rw-r--r-- | lldb/test/lang/cpp/exceptions/exceptions.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lldb/test/lang/cpp/exceptions/exceptions.cpp b/lldb/test/lang/cpp/exceptions/exceptions.cpp new file mode 100644 index 00000000000..150d420b241 --- /dev/null +++ b/lldb/test/lang/cpp/exceptions/exceptions.cpp @@ -0,0 +1,42 @@ +#include <exception> +#include <stdio.h> + +int throws_exception_on_even (int value); +int intervening_function (int value); +int catches_exception (int value); + +int +catches_exception (int value) +{ + try + { + return intervening_function(value); // This is the line you should stop at for catch + } + catch (int value) + { + return value; + } +} + +int +intervening_function (int value) +{ + return throws_exception_on_even (2 * value); +} + +int +throws_exception_on_even (int value) +{ + printf ("Mod two works: %d.\n", value%2); + if (value % 2 == 0) + throw 30; + else + return value; +} + +int +main () +{ + catches_exception (10); // Stop here + return 5; +} |

