From: Mark Mitchell Date: Sat, 12 Apr 2003 20:01:29 +0000 (+0000) Subject: re PR c++/7910 ([cygwin] Seg fault when compiling OpenSceneGraph 0.9.1) X-Git-Tag: releases/gcc-3.4.0~7337 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=355b81d5b32ba2e74b0da466df75d6a99f25bb16;p=thirdparty%2Fgcc.git re PR c++/7910 ([cygwin] Seg fault when compiling OpenSceneGraph 0.9.1) PR c++/7910 * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko. PR c++/7910 * g++.dg/ext/dllimport1.C: New test. From-SVN: r65519 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ee654718d632..0e9f49dccf25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-04-12 Mark Mitchell + + PR c++/7910 + * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko. + 2003-04-12 Zack Weinberg * configure.in: Check for wchar.h, mbstowcs, and wcswidth. diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index 0751c7f888ea..98e579220578 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -273,7 +273,7 @@ i386_pe_mark_dllimport (decl) const char *oldname; char *newname; tree idp; - rtx rtlname, newrtl; + rtx rtlname; rtlname = XEXP (DECL_RTL (decl), 0); if (GET_CODE (rtlname) == SYMBOL_REF) @@ -335,10 +335,8 @@ i386_pe_mark_dllimport (decl) identical. */ idp = get_identifier (newname); - newrtl = gen_rtx (MEM, Pmode, - gen_rtx (SYMBOL_REF, Pmode, - IDENTIFIER_POINTER (idp))); - XEXP (DECL_RTL (decl), 0) = newrtl; + XEXP (DECL_RTL (decl), 0) + = gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp)); /* Can't treat a pointer to this as a constant address */ DECL_NON_ADDR_CONST_P (decl) = 1; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fa8f2b83aa19..c7cae0a18180 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-04-12 Mark Mitchell + + PR c++/7910 + * g++.dg/ext/dllimport1.C: New test. + 2003-04-12 Eric Botcazou * gcc.dg/ultrasp8.c: Fix for 32-bit Sparc. diff --git a/gcc/testsuite/g++.dg/ext/dllimport1.C b/gcc/testsuite/g++.dg/ext/dllimport1.C new file mode 100644 index 000000000000..a93fb1927d6f --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/dllimport1.C @@ -0,0 +1,21 @@ +// { dg-do compile { target i?86-*-cygwin* } } + +class __attribute__((dllimport)) Foo +{ + public: + virtual void dummy_foo_func(void) + {} +}; + +class Bar : public Foo +{ +public: + ~Bar(); + void dummy_bar_func(); +}; + +Bar::~Bar() +{} + +void Bar::dummy_bar_func() +{}