reactos/modules/rostests/apitests/compiler/ms/eh/ehthrow.arm
Timo Kreuzer fe36f081c7
[COMPILER_APITEST] Add SEH tests from MS (#2435)
* [COMPILER_APITEST] Import MS EH/SEH tests

Taken from https://github.com/microsoft/compiler-tests

* [CRT] Add missing declaration of _longjmpex

* [COMPILER_APITEST] Add cmake build files for MS SEH test

It is built as a static library

* [COMPILER_APITEST] Fix GCC build of MS SEH tests

There are a number of hacks in there now. Also the volatile hacks should be separated and sent upstream.

* [COMPILER_APITEST] Fix x64 build of MS SEH tests

* [COMPILER_APITEST] Fix clang build of MS SEH tests

* [COMPILER_APITEST] Include MS SEH tests
2020-10-31 11:08:27 +01:00

677 lines
10 KiB
Plaintext

Test #1
A ctor. i = 0
B ctor. i = 1
A ctor. i = 2
B ctor. i = 3
B ctor. i = 4
A copy ctor. i = 5
B dtor. i = 4
B dtor. i = 3
Throwing
B ctor. i = 6
B ctor. i = 7
A copy ctor. i = 8
B dtor. i = 7
B dtor. i = 6
B ctor. i = 9
B ctor. i = 10
A copy ctor. i = 11
B dtor. i = 10
B dtor. i = 9
B ctor. i = 12
B ctor. i = 13
A dtor. i = 5
B dtor. i = 13
B dtor. i = 12
B ctor. i = 14
B ctor. i = 15
A dtor. i = 2
B dtor. i = 15
B dtor. i = 14
B dtor. i = 1
B ctor. i = 16
B ctor. i = 17
A dtor. i = 0
B dtor. i = 17
B dtor. i = 16
In main's catch
B ctor. i = 18
B ctor. i = 19
A dtor. i = 11
B dtor. i = 19
B dtor. i = 18
B ctor. i = 20
B ctor. i = 21
A dtor. i = 8
B dtor. i = 21
B dtor. i = 20
Test #2
A ctor. i = 0
B ctor. i = 1
A ctor. i = 2
A ctor. i = 3
B ctor. i = 4
B ctor. i = 5
A copy ctor. i = 6
B dtor. i = 5
B dtor. i = 4
Throwing
B ctor. i = 7
B ctor. i = 8
A copy ctor. i = 9
B dtor. i = 8
B dtor. i = 7
B ctor. i = 10
B ctor. i = 11
A copy ctor. i = 12
B dtor. i = 11
B dtor. i = 10
B ctor. i = 13
B ctor. i = 14
A dtor. i = 6
B dtor. i = 14
B dtor. i = 13
B ctor. i = 15
B ctor. i = 16
A dtor. i = 3
B dtor. i = 16
B dtor. i = 15
B ctor. i = 17
B ctor. i = 18
A dtor. i = 2
B dtor. i = 18
B dtor. i = 17
In catch;
A ctor. i = 19
Rethrowing
B ctor. i = 20
B ctor. i = 21
A dtor. i = 19
B dtor. i = 21
B dtor. i = 20
B ctor. i = 22
B ctor. i = 23
A dtor. i = 12
B dtor. i = 23
B dtor. i = 22
B ctor. i = 24
B ctor. i = 25
A copy ctor. i = 26
B dtor. i = 25
B dtor. i = 24
B dtor. i = 1
B ctor. i = 27
B ctor. i = 28
A dtor. i = 0
B dtor. i = 28
B dtor. i = 27
In main's catch
B ctor. i = 29
B ctor. i = 30
A dtor. i = 26
B dtor. i = 30
B dtor. i = 29
B ctor. i = 31
B ctor. i = 32
A dtor. i = 9
B dtor. i = 32
B dtor. i = 31
Test #3
A ctor. i = 0
B ctor. i = 1
A ctor. i = 2
A ctor. i = 3
B ctor. i = 4
B ctor. i = 5
A copy ctor. i = 6
B dtor. i = 5
B dtor. i = 4
Throwing
B ctor. i = 7
B ctor. i = 8
A copy ctor. i = 9
B dtor. i = 8
B dtor. i = 7
B ctor. i = 10
B ctor. i = 11
A copy ctor. i = 12
B dtor. i = 11
B dtor. i = 10
B ctor. i = 13
B ctor. i = 14
A dtor. i = 6
B dtor. i = 14
B dtor. i = 13
B ctor. i = 15
B ctor. i = 16
A dtor. i = 3
B dtor. i = 16
B dtor. i = 15
B ctor. i = 17
B ctor. i = 18
A dtor. i = 2
B dtor. i = 18
B dtor. i = 17
In catch
A ctor. i = 19
Throwing new a
B ctor. i = 20
B ctor. i = 21
A copy ctor. i = 22
B dtor. i = 21
B dtor. i = 20
B ctor. i = 23
B ctor. i = 24
A copy ctor. i = 25
B dtor. i = 24
B dtor. i = 23
B ctor. i = 26
B ctor. i = 27
A dtor. i = 19
B dtor. i = 27
B dtor. i = 26
B ctor. i = 28
B ctor. i = 29
A dtor. i = 12
B dtor. i = 29
B dtor. i = 28
B ctor. i = 30
B ctor. i = 31
A dtor. i = 9
B dtor. i = 31
B dtor. i = 30
B dtor. i = 1
B ctor. i = 32
B ctor. i = 33
A dtor. i = 0
B dtor. i = 33
B dtor. i = 32
In main's catch
B ctor. i = 34
B ctor. i = 35
A dtor. i = 25
B dtor. i = 35
B dtor. i = 34
B ctor. i = 36
B ctor. i = 37
A dtor. i = 22
B dtor. i = 37
B dtor. i = 36
Test #4
A ctor. i = 0
B ctor. i = 1
B ctor. i = 2
A ctor. i = 3
A ctor. i = 4
A ctor. i = 5
A ctor. i = 6
B ctor. i = 7
A ctor. i = 8
A ctor. i = 9
B ctor. i = 10
B ctor. i = 11
A copy ctor. i = 12
B dtor. i = 11
B dtor. i = 10
Throwing
B ctor. i = 13
B ctor. i = 14
A copy ctor. i = 15
B dtor. i = 14
B dtor. i = 13
B ctor. i = 16
B ctor. i = 17
A copy ctor. i = 18
B dtor. i = 17
B dtor. i = 16
B ctor. i = 19
B ctor. i = 20
A dtor. i = 12
B dtor. i = 20
B dtor. i = 19
B ctor. i = 21
B ctor. i = 22
A dtor. i = 9
B dtor. i = 22
B dtor. i = 21
B ctor. i = 23
B ctor. i = 24
A dtor. i = 8
B dtor. i = 24
B dtor. i = 23
In catch;
A ctor. i = 25
Rethrowing
B ctor. i = 26
B ctor. i = 27
A dtor. i = 25
B dtor. i = 27
B dtor. i = 26
B ctor. i = 28
B ctor. i = 29
A dtor. i = 18
B dtor. i = 29
B dtor. i = 28
B ctor. i = 30
B ctor. i = 31
A copy ctor. i = 32
B dtor. i = 31
B dtor. i = 30
B dtor. i = 7
B ctor. i = 33
B ctor. i = 34
A dtor. i = 6
B dtor. i = 34
B dtor. i = 33
B ctor. i = 35
B ctor. i = 36
A dtor. i = 5
B dtor. i = 36
B dtor. i = 35
In catch #1
B ctor. i = 37
Rethrowing
B dtor. i = 37
B ctor. i = 38
B ctor. i = 39
A dtor. i = 32
B dtor. i = 39
B dtor. i = 38
B ctor. i = 40
B ctor. i = 41
A dtor. i = 4
B dtor. i = 41
B dtor. i = 40
B ctor. i = 42
B ctor. i = 43
A dtor. i = 3
B dtor. i = 43
B dtor. i = 42
In catch #2
A ctor. i = 44
Throwing new a
B ctor. i = 45
B ctor. i = 46
A copy ctor. i = 47
B dtor. i = 46
B dtor. i = 45
B ctor. i = 48
B ctor. i = 49
A copy ctor. i = 50
B dtor. i = 49
B dtor. i = 48
B ctor. i = 51
B ctor. i = 52
A dtor. i = 44
B dtor. i = 52
B dtor. i = 51
B ctor. i = 53
B ctor. i = 54
A dtor. i = 15
B dtor. i = 54
B dtor. i = 53
B dtor. i = 2
In catch #3
B ctor. i = 55
Rethrowing
B dtor. i = 55
B ctor. i = 56
B ctor. i = 57
A dtor. i = 50
B dtor. i = 57
B dtor. i = 56
B ctor. i = 58
B ctor. i = 59
A copy ctor. i = 60
B dtor. i = 59
B dtor. i = 58
B dtor. i = 1
B ctor. i = 61
B ctor. i = 62
A dtor. i = 0
B dtor. i = 62
B dtor. i = 61
In main's catch
B ctor. i = 63
B ctor. i = 64
A dtor. i = 60
B dtor. i = 64
B dtor. i = 63
B ctor. i = 65
B ctor. i = 66
A dtor. i = 47
B dtor. i = 66
B dtor. i = 65
Test #5
A ctor. i = 0
B ctor. i = 1
B ctor. i = 2
B ctor. i = 3
B ctor. i = 4
A ctor. i = 5
B ctor. i = 6
B ctor. i = 7
A copy ctor. i = 8
B dtor. i = 7
B dtor. i = 6
Throwing
B ctor. i = 9
B ctor. i = 10
A copy ctor. i = 11
B dtor. i = 10
B dtor. i = 9
B ctor. i = 12
B ctor. i = 13
A copy ctor. i = 14
B dtor. i = 13
B dtor. i = 12
B ctor. i = 15
B ctor. i = 16
A dtor. i = 8
B dtor. i = 16
B dtor. i = 15
B ctor. i = 17
B ctor. i = 18
A dtor. i = 5
B dtor. i = 18
B dtor. i = 17
B dtor. i = 4
B dtor. i = 3
B dtor. i = 2
A ctor. i = 19
In catch #2
B ctor. i = 20
Throwing a new b
B copy ctor. i = 21
B copy ctor. i = 22
B dtor. i = 20
B ctor. i = 23
B ctor. i = 24
A dtor. i = 19
B dtor. i = 24
B dtor. i = 23
B ctor. i = 25
B ctor. i = 26
A dtor. i = 14
B dtor. i = 26
B dtor. i = 25
B ctor. i = 27
B ctor. i = 28
A dtor. i = 11
B dtor. i = 28
B dtor. i = 27
B dtor. i = 1
In catch #3
Throwing a new a
A ctor. i = 29
B ctor. i = 30
B ctor. i = 31
A copy ctor. i = 32
B dtor. i = 31
B dtor. i = 30
B dtor. i = 22
B dtor. i = 21
B ctor. i = 33
B ctor. i = 34
A dtor. i = 0
B dtor. i = 34
B dtor. i = 33
In main's catch
B ctor. i = 35
B ctor. i = 36
A dtor. i = 32
B dtor. i = 36
B dtor. i = 35
B ctor. i = 37
B ctor. i = 38
A dtor. i = 29
B dtor. i = 38
B dtor. i = 37
Test #6
B ctor. i = 0
B ctor. i = 1
B ctor. i = 2
Throwing a b
B copy ctor. i = 3
B copy ctor. i = 4
B dtor. i = 2
B ctor. i = 5
In catch #1
Throwing a new b
B copy ctor. i = 6
B copy ctor. i = 7
B dtor. i = 5
B dtor. i = 4
B dtor. i = 3
B dtor. i = 1
B ctor. i = 8
In catch #2
Throwing a new b
B copy ctor. i = 9
B copy ctor. i = 10
B dtor. i = 8
B dtor. i = 7
B dtor. i = 6
B dtor. i = 0
A ctor. i = 11
In catch #3
Throwing a new a
B ctor. i = 12
B ctor. i = 13
A copy ctor. i = 14
B dtor. i = 13
B dtor. i = 12
B ctor. i = 15
B ctor. i = 16
A copy ctor. i = 17
B dtor. i = 16
B dtor. i = 15
B ctor. i = 18
B ctor. i = 19
A dtor. i = 11
B dtor. i = 19
B dtor. i = 18
B dtor. i = 10
B dtor. i = 9
In main's catch
B ctor. i = 20
B ctor. i = 21
A dtor. i = 17
B dtor. i = 21
B dtor. i = 20
B ctor. i = 22
B ctor. i = 23
A dtor. i = 14
B dtor. i = 23
B dtor. i = 22
Test #7
B ctor. i = 0
B ctor. i = 1
B ctor. i = 2
Throwing a b
B ctor. i = 3
B copy ctor. i = 4
B dtor. i = 2
B ctor. i = 5
In catch #1
B ctor. i = 6
Rethrowing b
B copy ctor. i = 7
B dtor. i = 6
B ctor. i = 8
In catch #1 of catch#1
Rethrowing b
B dtor. i = 8
B dtor. i = 7
B dtor. i = 5
B dtor. i = 4
B copy ctor. i = 9
B dtor. i = 1
B ctor. i = 10
In catch #2
Throwing a new A
A ctor. i = 11
B ctor. i = 12
B ctor. i = 13
A copy ctor. i = 14
B dtor. i = 13
B dtor. i = 12
B dtor. i = 10
B dtor. i = 9
B dtor. i = 3
B dtor. i = 0
In main's catch
B ctor. i = 15
B ctor. i = 16
A dtor. i = 14
B dtor. i = 16
B dtor. i = 15
B ctor. i = 17
B ctor. i = 18
A dtor. i = 11
B dtor. i = 18
B dtor. i = 17
Test #8
B ctor. i = 0
B ctor. i = 1
B ctor. i = 2
B ctor. i = 3
Throwing a b
B ctor. i = 4
B ctor. i = 5
B copy ctor. i = 6
B dtor. i = 4
B dtor. i = 3
B ctor. i = 7
In catch #1
B ctor. i = 8
Rethrowing b
A ctor. i = 9
Rethrowing
B copy ctor. i = 10
B ctor. i = 11
B ctor. i = 12
A dtor. i = 9
B dtor. i = 12
B dtor. i = 11
B dtor. i = 8
B ctor. i = 13
In catch #1 of catch#1
Rethrowing b
A ctor. i = 14
Rethrowing
B ctor. i = 15
B ctor. i = 16
A dtor. i = 14
B dtor. i = 16
B dtor. i = 15
B dtor. i = 13
B dtor. i = 10
B copy ctor. i = 17
B dtor. i = 7
B dtor. i = 6
B dtor. i = 2
B dtor. i = 1
B ctor. i = 18
In catch #2
Throwing a new A
A ctor. i = 19
B ctor. i = 20
B ctor. i = 21
A copy ctor. i = 22
B dtor. i = 21
B dtor. i = 20
B dtor. i = 18
B dtor. i = 17
B dtor. i = 5
B dtor. i = 0
In main's catch
B ctor. i = 23
B ctor. i = 24
A dtor. i = 22
B dtor. i = 24
B dtor. i = 23
B ctor. i = 25
B ctor. i = 26
A dtor. i = 19
B dtor. i = 26
B dtor. i = 25
Test #9
B ctor. i = 0
Throwing B
B copy ctor. i = 1
B dtor. i = 0
In catch #1
Rethrow
In catch #2
B dtor. i = 1
End of test9, throwing a A
A ctor. i = 2
B ctor. i = 3
B ctor. i = 4
A copy ctor. i = 5
B dtor. i = 4
B dtor. i = 3
In main's catch
B ctor. i = 6
B ctor. i = 7
A dtor. i = 5
B dtor. i = 7
B dtor. i = 6
B ctor. i = 8
B ctor. i = 9
A dtor. i = 2
B dtor. i = 9
B dtor. i = 8
Test #10
B ctor. i = 0
Throwing B
B copy ctor. i = 1
B dtor. i = 0
In catch #1
Throwing a new B()
B ctor. i = 2
In catch #2
B dtor. i = 2
B dtor. i = 1
End of test10, throwing a A
A ctor. i = 3
B ctor. i = 4
B ctor. i = 5
A copy ctor. i = 6
B dtor. i = 5
B dtor. i = 4
In main's catch
B ctor. i = 7
B ctor. i = 8
A dtor. i = 6
B dtor. i = 8
B dtor. i = 7
B ctor. i = 9
B ctor. i = 10
A dtor. i = 3
B dtor. i = 10
B dtor. i = 9
Passed