diff options
author | Dave Korn <dave.korn.cygwin@gmail.com> | 2011-01-26 01:41:23 +0000 |
---|---|---|
committer | Dave Korn <davek@gcc.gnu.org> | 2011-01-26 01:41:23 +0000 |
commit | 47ea1edfbce523efbccac2377388798ec7800460 (patch) | |
tree | 7791b2c5afa7301952887cfb93c353a67dacb1ce /gcc/cp/semantics.c | |
parent | 744f0946bcbf7be92a725383d41c31673849efa9 (diff) | |
download | gcc-47ea1edfbce523efbccac2377388798ec7800460.zip gcc-47ea1edfbce523efbccac2377388798ec7800460.tar.gz gcc-47ea1edfbce523efbccac2377388798ec7800460.tar.bz2 |
c.opt (-fkeep-inline-dllexport): New switch.
gcc/c-family/ChangeLog:
* c.opt (-fkeep-inline-dllexport): New switch.
gcc/ChangeLog:
* tree.c (handle_dll_attribute): Handle it.
* doc/extend.texi (@item dllexport): Mention it.
* doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
gcc/cp/ChangeLog:
* semantics.c (expand_or_defer_fn_1): Handle it.
* decl2.c (decl_needed_p): Likewise.
gcc/testsuite/ChangeLog:
* gcc.dg/dll-9a.c: New test file.
* gcc.dg/dll-11.c: Likewise.
* gcc.dg/dll-12.c: Likewise.
* gcc.dg/dll-12a.c: Likewise.
* gcc.dg/dll-11a.c: Likewise.
* gcc.dg/dll-9.c: Likewise.
* gcc.dg/dll-10.c: Likewise.
* gcc.dg/dll-10a.c: Likewise.
* g++.dg/ext/dllexport4a.cc: Likewise.
* g++.dg/ext/dllexport4.C: Likewise.
* g++.dg/ext/dllexport5.C: Likewise.
* g++.dg/ext/dllexport5a.cc: Likewise.
From-SVN: r169268
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index dc29c7a..ea8a7ae 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -3482,7 +3482,8 @@ expand_or_defer_fn_1 (tree fn) if ((flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn) && !DECL_REALLY_EXTERN (fn)) - || lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn))) + || (flag_keep_inline_dllexport + && lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))) mark_needed (fn); } |