Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/ext/dllimport7.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 // { dg-do compile { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } } | |
2 | |
3 // Report errors on definition of dllimport'd static data member . | |
4 | |
5 | |
6 struct Baz | |
7 { | |
8 Baz(int a_ =0) : a(a_) {} | |
9 int a; | |
10 }; | |
11 | |
12 class __declspec(dllimport) Bar | |
13 { | |
14 public: | |
15 enum {one = 1}; | |
16 static const int two = 2; | |
17 static const int three; | |
18 static const Baz null_baz; | |
19 }; | |
20 | |
21 const int Bar::three = 3; // { dg-warning "redeclared without dllimport" } | |
22 // { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* x86_64-*-mingw* } .-1 } | |
23 | |
24 const Baz Bar::null_baz; // { dg-warning "redeclared without dllimport" } | |
25 | |
26 int foo() | |
27 { | |
28 Bar foobar; | |
29 const int* baz = &Bar::two; | |
30 int a = foobar.two; | |
31 int b = foobar.three; | |
32 int c = foobar.null_baz.a; | |
33 return (a + b + c + *baz); | |
34 } |