summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser/ms-seh.c
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2015-02-25 02:22:06 +0000
committerNico Weber <nicolasweber@gmx.de>2015-02-25 02:22:06 +0000
commitfc3fe4f0a1161850692d14c72d6c729fa91bdf82 (patch)
tree27dd4afac2669becea076cd61e098f7334b8d82c /clang/test/Parser/ms-seh.c
parent64b04b9bdf6f5dec2ebccd39195d8f216dad9ccb (diff)
downloadbcm5719-llvm-fc3fe4f0a1161850692d14c72d6c729fa91bdf82.tar.gz
bcm5719-llvm-fc3fe4f0a1161850692d14c72d6c729fa91bdf82.zip
Don't crash on missing '{' after __except or __finally, PR22687.
Also add some general test/Parser coverage for SEH blocks. llvm-svn: 230449
Diffstat (limited to 'clang/test/Parser/ms-seh.c')
-rw-r--r--clang/test/Parser/ms-seh.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/Parser/ms-seh.c b/clang/test/Parser/ms-seh.c
new file mode 100644
index 00000000000..68c2e309154
--- /dev/null
+++ b/clang/test/Parser/ms-seh.c
@@ -0,0 +1,24 @@
+// RUN: %clang_cc1 %s -fsyntax-only -Wmicrosoft -verify -fms-extensions
+
+void f() {
+ int a;
+
+ __try a; // expected-error {{expected '{'}} expected-warning {{expression result unused}}
+
+ __try {
+ }
+} // expected-error {{expected '__except' or '__finally' block}}
+
+void g() {
+ int a;
+
+ __try {
+ } __except(1) a; // expected-error {{expected '{'}} expected-warning {{expression result unused}}
+}
+
+void h() {
+ int a;
+
+ __try {
+ } __finally a; // expected-error {{expected '{'}} expected-warning {{expression result unused}}
+}
OpenPOWER on IntegriCloud