// tests that the asm directive is correctly handled for static fields // in structures and classes. This only applies to C++; such // directives generate errors in C. Assembler directives for local // variables should be tested by the C test suite. // // Contributed by Robert Bowdidge (bowdidge@apple.com) 14 Oct 2003 // { dg-do compile } struct Foo { // This should reference a variable called bar static int i __asm__("bar"); }; class Bar { public: static int i __asm__("theRealI"); static int j __asm__("theRealJ"); int boof; }; class Baz : public Bar { public: static char *ptr __asm__ ("theRealString"); }; int main (int argc, char **argv) { struct Foo myFoo; Bar b; myFoo.i = 1; Foo::i = 2; Baz::j = 10; Baz::ptr = 0; b.i = 1; return (b.i); } /* { dg-final {scan-assembler "bar"} } */ /* { dg-final {scan-assembler "theRealString"} } */ /* { dg-final {scan-assembler "theRealI" } } */ /* { dg-final {scan-assembler "theRealJ" } } */