]>
Commit | Line | Data |
---|---|---|
98864ed0 | 1 | /* Test CET property note parser. |
581c785b | 2 | Copyright (C) 2018-2022 Free Software Foundation, Inc. |
98864ed0 L |
3 | This file is part of the GNU C Library. |
4 | ||
5 | The GNU C Library is free software; you can redistribute it and/or | |
6 | modify it under the terms of the GNU Lesser General Public | |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
9 | ||
10 | The GNU C Library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Lesser General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
16 | License along with the GNU C Library; if not, see | |
5a82c748 | 17 | <https://www.gnu.org/licenses/>. */ |
98864ed0 L |
18 | |
19 | #include <cet.h> | |
20 | ||
21 | .text | |
22 | .p2align 4,,15 | |
23 | .globl bar | |
24 | .type bar, @function | |
25 | /* Since this function doesn't start with ENDBR, it should lead to the | |
26 | IBT violation when called indirectly. */ | |
27 | bar: | |
28 | .cfi_startproc | |
29 | ret | |
30 | .cfi_endproc | |
31 | .size bar, .-bar | |
32 | ||
33 | #if __SIZEOF_PTRDIFF_T__ == 8 | |
34 | # define ALIGN 3 | |
35 | #elif __SIZEOF_PTRDIFF_T__ == 4 | |
36 | # define ALIGN 2 | |
37 | #endif | |
38 | ||
39 | /* In NT_GNU_PROPERTY_TYPE_0 note, add a GNU_PROPERTY_STACK_SIZE property | |
40 | before the GNU_PROPERTY_X86_FEATURE_1_AND property. */ | |
41 | .section ".note.gnu.property", "a" | |
42 | .p2align ALIGN | |
43 | .long 1f - 0f /* name length */ | |
44 | .long 5f - 2f /* data length */ | |
45 | .long 5 /* note type */ | |
46 | 0: .asciz "GNU" /* vendor name */ | |
47 | 1: | |
48 | .p2align ALIGN | |
49 | 2: | |
50 | .long 1 /* pr_type. */ | |
51 | .long 4f - 3f /* pr_datasz. */ | |
52 | 3: | |
53 | #if __SIZEOF_PTRDIFF_T__ == 8 | |
54 | .long 0x800 | |
55 | .long 0x800 | |
56 | #else | |
57 | .long 0x08000800 | |
58 | #endif | |
59 | 4: | |
60 | .p2align ALIGN | |
61 | 5: | |
62 | ||
63 | .section .note.GNU-stack,"",@progbits |