annotate gcc/testsuite/g++.dg/ext/dllimport7.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 // Report errors on definition of dllimport'd static data member .
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 struct Baz
kono
parents:
diff changeset
7 {
kono
parents:
diff changeset
8 Baz(int a_ =0) : a(a_) {}
kono
parents:
diff changeset
9 int a;
kono
parents:
diff changeset
10 };
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 class __declspec(dllimport) Bar
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 public:
kono
parents:
diff changeset
15 enum {one = 1};
kono
parents:
diff changeset
16 static const int two = 2;
kono
parents:
diff changeset
17 static const int three;
kono
parents:
diff changeset
18 static const Baz null_baz;
kono
parents:
diff changeset
19 };
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 const int Bar::three = 3; // { dg-warning "redeclared without dllimport" }
kono
parents:
diff changeset
22 // { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } .-1 }
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 const Baz Bar::null_baz; // { dg-warning "redeclared without dllimport" }
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 int foo()
kono
parents:
diff changeset
27 {
kono
parents:
diff changeset
28 Bar foobar;
kono
parents:
diff changeset
29 const int* baz = &Bar::two;
kono
parents:
diff changeset
30 int a = foobar.two;
kono
parents:
diff changeset
31 int b = foobar.three;
kono
parents:
diff changeset
32 int c = foobar.null_baz.a;
kono
parents:
diff changeset
33 return (a + b + c + *baz);
kono
parents:
diff changeset
34 }