blob: 458c91c2cf31cdba4057f6ad9f746c76eae29bcf [file] [log] [blame]
Inna Palantff3f07a2019-07-11 16:15:26 -07001// RUN: %clang_cc1 -fsyntax-only -verify %s -triple arm-none-eabi
ThiƩbaud Weksteene40e7362020-10-28 15:03:00 +01002#pragma clang section bss = "mybss.1" data = "mydata.1" rodata = "myrodata.1" text = "mytext.1" // expected-note 2 {{#pragma entered here}}
Inna Palantff3f07a2019-07-11 16:15:26 -07003#pragma clang section bss="" data="" rodata="" text=""
4#pragma clang section
5
Jeff Vander Stoep247d86b2020-08-11 14:27:44 +02006#pragma clang section dss="mybss.2" // expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
7#pragma clang section deta="mydata.2" // expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
8#pragma clang section rodeta="rodata.2" // expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
9#pragma clang section taxt="text.2" // expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
Inna Palantff3f07a2019-07-11 16:15:26 -070010
Jeff Vander Stoep247d86b2020-08-11 14:27:44 +020011#pragma clang section section bss="mybss.2" // expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
Inna Palantff3f07a2019-07-11 16:15:26 -070012
13#pragma clang section bss "mybss.2" // expected-error {{expected '=' following '#pragma clang section bss'}}
14#pragma clang section data "mydata.2" // expected-error {{expected '=' following '#pragma clang section data'}}
15#pragma clang section rodata "myrodata.2" // expected-error {{expected '=' following '#pragma clang section rodata'}}
Jeff Vander Stoep247d86b2020-08-11 14:27:44 +020016#pragma clang section text "text.2" // expected-error {{expected '=' following '#pragma clang section text'}}
17#pragma clang section relro "relro.2" // expected-error {{expected '=' following '#pragma clang section relro'}}
18#pragma clang section bss="" data="" rodata="" text="" more //expected-error {{expected one of [bss|data|rodata|text|relro] section kind in '#pragma clang section'}}
ThiƩbaud Weksteene40e7362020-10-28 15:03:00 +010019
20#pragma clang section bss = "mybss.3" data = "mybss.3" // expected-error {{this causes a section type conflict with a prior #pragma section}} expected-note {{#pragma entered here}} expected-note {{#pragma entered here}}
21#pragma clang section rodata = "mydata.1" // expected-error {{this causes a section type conflict with a prior #pragma section}}
22#pragma clang section bss = "myrodata.1" // expected-error {{this causes a section type conflict with a prior #pragma section}}
23#pragma clang section text = "mybss.3" // expected-error {{this causes a section type conflict with a prior #pragma section}}
24
25#pragma clang section rodata = "myrodata.4" // expected-note {{#pragma entered here}}
26int x __attribute__((section("myrodata.4"))); // expected-error {{'x' causes a section type conflict with a prior #pragma section}}
27const int y __attribute__((section("myrodata.5"))) = 10; // expected-note {{declared here}}
28#pragma clang section data = "myrodata.5" // expected-error {{this causes a section type conflict with 'y'}}
29const int z __attribute__((section("myrodata.6"))) = 11;
30
Inna Palantff3f07a2019-07-11 16:15:26 -070031int a;