From 104275db8ce34cc5bb54022a0bc4feb32b7c3fe2 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 26 Aug 2014 21:49:06 +0000 Subject: [PATCH 1/1] [PSEH_TEST] - Add test case that uses a significant amount of stack in the except handler CORE-8469 #resolve svn path=/trunk/; revision=63959 --- rostests/tests/pseh2/psehtest.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/rostests/tests/pseh2/psehtest.c b/rostests/tests/pseh2/psehtest.c index 60d6d454e28..4325ab2e270 100644 --- a/rostests/tests/pseh2/psehtest.c +++ b/rostests/tests/pseh2/psehtest.c @@ -2723,6 +2723,33 @@ DEFINE_TEST(test_PSEH3_bug) return (count == 1); } +void +use_lots_of_stack(void) +{ + int i; + volatile int arr[512]; + for (i = 0; i < 512; i++) + arr[i] = 123; + (void)arr; +} + +DEFINE_TEST(test_PSEH3_bug2) +{ + unsigned long status = 0; + _SEH2_TRY + { + *(volatile int*)0x12345678 = 0x12345678; + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + use_lots_of_stack(); + status = _SEH2_GetExceptionCode(); + } + _SEH2_END; + + return (status == STATUS_ACCESS_VIOLATION); +} + #define USE_TEST_NAME_(NAME_) # NAME_ #define USE_TEST_NAME(NAME_) USE_TEST_NAME_(NAME_) #define USE_TEST(NAME_) { USE_TEST_NAME(NAME_), NAME_ } @@ -2857,6 +2884,7 @@ void testsuite_syntax(void) USE_TEST(test_finally_goto), USE_TEST(test_nested_exception), USE_TEST(test_PSEH3_bug), + USE_TEST(test_PSEH3_bug2), }; size_t i; -- 2.17.1