Message ID | Pine.LNX.4.64.1011200146400.9350@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
On Sat, Nov 20, 2010 at 2:47 AM, Joseph S. Myers <joseph@codesourcery.com> wrote: > As proposed in > <http://gcc.gnu.org/ml/gcc-patches/2010-11/msg01986.html>, this patch > eliminates the target macros HANDLE_SYSV_PRAGMA and > HANDLE_PRAGMA_PACK_PUSH_POP, enabling the relevant features > unconditionally. > > The user documentation of #pragma pack makes no mention of it being > conditional on the target, so needs no changes. The documentation of > the target macros was inaccurate when it claimed #pragma weak support > was conditional on HANDLE_SYSV_PRAGMA; the code was always enabled > (#ifdef on HANDLE_PRAGMA_WEAK, a macro unconditionally #defined in > c-pragma.h), with checks of SUPPORTS_WEAK being done when weak symbols > are actually created. Some targets thought HANDLE_PRAGMA_WEAK was a > target macro; undefining that, or HANDLE_PRAGMA_PACK, was ineffective > given the order of inclusion of headers. Similarly, > HANDLE_PRAGMA_VISIBILITY was unconditionally defined and so served no > useful purpose. > > Bootstrapped with no regressions on x86_64-unknown-linux-gnu. Also > tested building cc1 for crosses to: alpha-linux-gnu alpha-dec-osf5.1 > alpha-dec-vms arm-netbsdelf cris-elf frv-elf i686-darwin > i686-freebsd8.1 i686-interix3 i686-mingw32 i686-netbsdelf i686-netware > i686-openbsd i686-wrs-vxworks ia64-hpux11.23 m32r-linux-gnu mep-elf > mips-sde-elf mmix-knuth-mmixware hppa64-hpux11.23 powerpc-ibm-aix5.3.0 > powerpc-linux-gnu rx-elf score-elf spu-elf xstormy16-elf xtensa-elf > (builds for alpha-dec-osf5.1 and i686-interix3 failed for unrelated > reasons). OK to commit (the non-front-end parts; I think the removal > of always-true conditionals in the C++ front end counts as obvious)? Ok. Thanks, Richard. > 2010-11-19 Joseph Myers <joseph@codesourcery.com> > > * doc/tm.texi.in (HANDLE_SYSV_PRAGMA, > HANDLE_PRAGMA_PACK_PUSH_POP): Remove. > (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to > HANDLE_SYSV_PRAGMA. > * doc/tm.texi: Regenerate. > * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA, > HANDLE_PRAGMA_WEAK): Poison. > * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't > define. > * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't > define. > * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_WEAK): Don't undefine. > * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't > define. > * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_WEAK): Don't undefine. > * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_PACK): Don't undefine. > * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine. > * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define. > (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't > define. > * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define. > * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define. > > c-family: > 2010-11-19 Joseph Myers <joseph@codesourcery.com> > > * c-pragma.c: Remove conditionals on HANDLE_PRAGMA_PACK, > HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_PRAGMA_WEAK and > HANDLE_PRAGMA_VISIBILITY. > * c-pragma.h (HANDLE_PRAGMA_WEAK, HANDLE_PRAGMA_PACK, > HANDLE_PRAGMA_VISIBILITY): Don't define. > (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Don't test. > > cp: > 2010-11-19 Joseph Myers <joseph@codesourcery.com> > > * name-lookup.c (handle_namespace_attrs): Don't check > HANDLE_PRAGMA_VISIBILITY. > * parser.c (cp_parser_namespace_definition): Don't check > HANDLE_PRAGMA_VISIBILITY. > > testsuite: > 2010-11-19 Joseph Myers <joseph@codesourcery.com> > > * g++.dg/cpp/_Pragma1.C: Test for all non-Solaris targets. > * gcc.dg/cpp/_Pragma6.c: Test for all non-Solaris targets. > * gcc.dg/pack-test-1.c: Test for all non-default_packed targets. > * gcc.dg/pack-test-2.c: Test for all targets. > * gcc.dg/pragma-align.c: Test for all targets. > * gcc.dg/pragma-pack-4.c: Do not skip for AVR. > * gcc.dg/ucnid-10.c: Test for all targets. > > Index: gcc/doc/tm.texi > =================================================================== > --- gcc/doc/tm.texi (revision 166951) > +++ gcc/doc/tm.texi (working copy) > @@ -10666,55 +10666,8 @@ rule to the makefile fragment pointed to > how to build this object file. > @end deftypefun > > -@findex #pragma > -@findex pragma > -@defmac HANDLE_SYSV_PRAGMA > -Define this macro (to a value of 1) if you want the System V style > -pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name> > -[=<value>]} to be supported by gcc. > - > -The pack pragma specifies the maximum alignment (in bytes) of fields > -within a structure, in much the same way as the @samp{__aligned__} and > -@samp{__packed__} @code{__attribute__}s do. A pack value of zero resets > -the behavior to the default. > - > -A subtlety for Microsoft Visual C/C++ style bit-field packing > -(e.g.@: -mms-bitfields) for targets that support it: > -When a bit-field is inserted into a packed record, the whole size > -of the underlying type is used by one or more same-size adjacent > -bit-fields (that is, if its long:3, 32 bits is used in the record, > -and any additional adjacent long bit-fields are packed into the same > -chunk of 32 bits. However, if the size changes, a new field of that > -size is allocated). > - > -If both MS bit-fields and @samp{__attribute__((packed))} are used, > -the latter will take precedence. If @samp{__attribute__((packed))} is > -used on a single field when MS bit-fields are in use, it will take > -precedence for that field, but the alignment of the rest of the structure > -may affect its placement. > - > -The weak pragma only works if @code{SUPPORTS_WEAK} and > -@code{ASM_WEAKEN_LABEL} are defined. If enabled it allows the creation > -of specifically named weak labels, optionally with a value. > -@end defmac > - > -@findex #pragma > -@findex pragma > -@defmac HANDLE_PRAGMA_PACK_PUSH_POP > -Define this macro (to a value of 1) if you want to support the Win32 > -style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma > -pack(pop)}. The @samp{pack(push,[@var{n}])} pragma specifies the maximum > -alignment (in bytes) of fields within a structure, in much the same way as > -the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do. A > -pack value of zero resets the behavior to the default. Successive > -invocations of this pragma cause the previous values to be stacked, so > -that invocations of @samp{#pragma pack(pop)} will return to the previous > -value. > -@end defmac > - > @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION > -Define this macro, as well as > -@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the > +Define this macro if macros should be expanded in the > arguments of @samp{#pragma pack}. > @end defmac > > Index: gcc/doc/tm.texi.in > =================================================================== > --- gcc/doc/tm.texi.in (revision 166951) > +++ gcc/doc/tm.texi.in (working copy) > @@ -10628,55 +10628,8 @@ rule to the makefile fragment pointed to > how to build this object file. > @end deftypefun > > -@findex #pragma > -@findex pragma > -@defmac HANDLE_SYSV_PRAGMA > -Define this macro (to a value of 1) if you want the System V style > -pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name> > -[=<value>]} to be supported by gcc. > - > -The pack pragma specifies the maximum alignment (in bytes) of fields > -within a structure, in much the same way as the @samp{__aligned__} and > -@samp{__packed__} @code{__attribute__}s do. A pack value of zero resets > -the behavior to the default. > - > -A subtlety for Microsoft Visual C/C++ style bit-field packing > -(e.g.@: -mms-bitfields) for targets that support it: > -When a bit-field is inserted into a packed record, the whole size > -of the underlying type is used by one or more same-size adjacent > -bit-fields (that is, if its long:3, 32 bits is used in the record, > -and any additional adjacent long bit-fields are packed into the same > -chunk of 32 bits. However, if the size changes, a new field of that > -size is allocated). > - > -If both MS bit-fields and @samp{__attribute__((packed))} are used, > -the latter will take precedence. If @samp{__attribute__((packed))} is > -used on a single field when MS bit-fields are in use, it will take > -precedence for that field, but the alignment of the rest of the structure > -may affect its placement. > - > -The weak pragma only works if @code{SUPPORTS_WEAK} and > -@code{ASM_WEAKEN_LABEL} are defined. If enabled it allows the creation > -of specifically named weak labels, optionally with a value. > -@end defmac > - > -@findex #pragma > -@findex pragma > -@defmac HANDLE_PRAGMA_PACK_PUSH_POP > -Define this macro (to a value of 1) if you want to support the Win32 > -style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma > -pack(pop)}. The @samp{pack(push,[@var{n}])} pragma specifies the maximum > -alignment (in bytes) of fields within a structure, in much the same way as > -the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do. A > -pack value of zero resets the behavior to the default. Successive > -invocations of this pragma cause the previous values to be stacked, so > -that invocations of @samp{#pragma pack(pop)} will return to the previous > -value. > -@end defmac > - > @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION > -Define this macro, as well as > -@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the > +Define this macro if macros should be expanded in the > arguments of @samp{#pragma pack}. > @end defmac > > Index: gcc/c-family/c-pragma.c > =================================================================== > --- gcc/c-family/c-pragma.c (revision 166951) > +++ gcc/c-family/c-pragma.c (working copy) > @@ -54,10 +54,8 @@ typedef struct GTY(()) align_stack { > > static GTY(()) struct align_stack * alignment_stack; > > -#ifdef HANDLE_PRAGMA_PACK > static void handle_pragma_pack (cpp_reader *); > > -#ifdef HANDLE_PRAGMA_PACK_PUSH_POP > /* If we have a "global" #pragma pack(<n>) in effect when the first > #pragma pack(push,<n>) is encountered, this stores the value of > maximum_field_alignment in effect. When the final pop_alignment() > @@ -125,13 +123,6 @@ pop_alignment (tree id) > > alignment_stack = entry; > } > -#else /* not HANDLE_PRAGMA_PACK_PUSH_POP */ > -#define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN)) > -#define push_alignment(ID, N) \ > - GCC_BAD ("#pragma pack(push[, id], <n>) is not supported on this target") > -#define pop_alignment(ID) \ > - GCC_BAD ("#pragma pack(pop[, id], <n>) is not supported on this target") > -#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ > > /* #pragma pack () > #pragma pack (N) > @@ -244,7 +235,6 @@ handle_pragma_pack (cpp_reader * ARG_UNU > case pop: pop_alignment (id); break; > } > } > -#endif /* HANDLE_PRAGMA_PACK */ > > typedef struct GTY(()) pending_weak_d > { > @@ -257,7 +247,6 @@ DEF_VEC_ALLOC_O(pending_weak,gc); > > static GTY(()) VEC(pending_weak,gc) *pending_weaks; > > -#ifdef HANDLE_PRAGMA_WEAK > static void apply_pragma_weak (tree, tree); > static void handle_pragma_weak (cpp_reader *); > > @@ -380,17 +369,6 @@ handle_pragma_weak (cpp_reader * ARG_UNU > pe->value = value; > } > } > -#else > -void > -maybe_apply_pragma_weak (tree ARG_UNUSED (decl)) > -{ > -} > - > -void > -maybe_apply_pending_pragma_weaks (void) > -{ > -} > -#endif /* HANDLE_PRAGMA_WEAK */ > > /* GCC supports two #pragma directives for renaming the external > symbol associated with a declaration (DECL_ASSEMBLER_NAME), for > @@ -617,7 +595,6 @@ maybe_apply_renaming_pragma (tree decl, > } > > > -#ifdef HANDLE_PRAGMA_VISIBILITY > static void handle_pragma_visibility (cpp_reader *); > > static VEC (int, heap) *visstack; > @@ -710,8 +687,6 @@ handle_pragma_visibility (cpp_reader *du > warning (OPT_Wpragmas, "junk at end of %<#pragma GCC visibility%>"); > } > > -#endif > - > static void > handle_pragma_diagnostic(cpp_reader *ARG_UNUSED(dummy)) > { > @@ -1316,19 +1291,13 @@ init_pragma (void) > cpp_register_deferred_pragma (parse_in, "GCC", "pch_preprocess", > PRAGMA_GCC_PCH_PREPROCESS, false, false); > > -#ifdef HANDLE_PRAGMA_PACK > #ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION > c_register_pragma_with_expansion (0, "pack", handle_pragma_pack); > #else > c_register_pragma (0, "pack", handle_pragma_pack); > #endif > -#endif > -#ifdef HANDLE_PRAGMA_WEAK > c_register_pragma (0, "weak", handle_pragma_weak); > -#endif > -#ifdef HANDLE_PRAGMA_VISIBILITY > c_register_pragma ("GCC", "visibility", handle_pragma_visibility); > -#endif > > c_register_pragma ("GCC", "diagnostic", handle_pragma_diagnostic); > c_register_pragma ("GCC", "target", handle_pragma_target); > Index: gcc/c-family/c-pragma.h > =================================================================== > --- gcc/c-family/c-pragma.h (revision 166951) > +++ gcc/c-family/c-pragma.h (working copy) > @@ -1,6 +1,6 @@ > /* Pragma related interfaces. > Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, > - 2007, 2008 Free Software Foundation, Inc. > + 2007, 2008, 2009, 2010 Free Software Foundation, Inc. > > This file is part of GCC. > > @@ -75,26 +75,9 @@ typedef enum pragma_omp_clause { > > extern struct cpp_reader* parse_in; > > -#define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK > - > -#ifdef HANDLE_SYSV_PRAGMA > -/* We always support #pragma pack for SYSV pragmas. */ > -#ifndef HANDLE_PRAGMA_PACK > -#define HANDLE_PRAGMA_PACK 1 > -#endif > -#endif /* HANDLE_SYSV_PRAGMA */ > - > - > -#ifdef HANDLE_PRAGMA_PACK_PUSH_POP > -/* If we are supporting #pragma pack(push... then we automatically > - support #pragma pack(<n>) */ > -#define HANDLE_PRAGMA_PACK 1 > -#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ > - > /* It's safe to always leave visibility pragma enabled as if > visibility is not supported on the host OS platform the > statements are ignored. */ > -#define HANDLE_PRAGMA_VISIBILITY 1 > extern void push_visibility (const char *, int); > extern bool pop_visibility (int); > > Index: gcc/testsuite/gcc.dg/pragma-align.c > =================================================================== > --- gcc/testsuite/gcc.dg/pragma-align.c (revision 166951) > +++ gcc/testsuite/gcc.dg/pragma-align.c (working copy) > @@ -1,6 +1,6 @@ > -/* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */ > +/* Prove that pragma alignment handling works somewhat. */ > > -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* *-*-solaris2.* } } */ > +/* { dg-do run } */ > > extern void abort (void); > > Index: gcc/testsuite/gcc.dg/cpp/_Pragma6.c > =================================================================== > --- gcc/testsuite/gcc.dg/cpp/_Pragma6.c (revision 166951) > +++ gcc/testsuite/gcc.dg/cpp/_Pragma6.c (working copy) > @@ -1,8 +1,7 @@ > /* PR c/27747 */ > /* This is supposed to succeed only if > - the target defines HANDLE_PRAGMA_PACK_PUSH_POP > - and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */ > -/* { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* sh*-[us]*-elf m32c-*-* *-*-vxworks moxie-*-* mips-sgi-irix* alpha*-dec-osf* } } } } */ > + the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */ > +/* { dg-do compile { target { ! { *-*-solaris2* } } } } */ > > #define push bar > #define foo _Pragma ("pack(push)") > Index: gcc/testsuite/gcc.dg/pack-test-1.c > =================================================================== > --- gcc/testsuite/gcc.dg/pack-test-1.c (revision 166951) > +++ gcc/testsuite/gcc.dg/pack-test-1.c (working copy) > @@ -1,7 +1,7 @@ > /* Test semantics of #pragma pack. > Contributed by Mike Coleman <mcoleman2@kc.rr.com> */ > > -/* { dg-do compile { target { { *-*-linux* *-*-cygwin* powerpc*-*-eabi* } && { ! default_packed } } } } */ > +/* { dg-do compile { target { ! default_packed } } } */ > > /* Mainly we're just testing whether pushing and popping seem to be > working correctly, and verifying the (alignment == 1) case, which > Index: gcc/testsuite/gcc.dg/pack-test-2.c > =================================================================== > --- gcc/testsuite/gcc.dg/pack-test-2.c (revision 166951) > +++ gcc/testsuite/gcc.dg/pack-test-2.c (working copy) > @@ -1,7 +1,7 @@ > /* Tests for syntax checking of #pragma pack. > Contributed by Mike Coleman <mcoleman2@kc.rr.com> */ > > -/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */ > +/* { dg-do compile } */ > > #pragma pack(pop) /* { dg-warning "without matching" } */ > > Index: gcc/testsuite/gcc.dg/ucnid-10.c > =================================================================== > --- gcc/testsuite/gcc.dg/ucnid-10.c (revision 166951) > +++ gcc/testsuite/gcc.dg/ucnid-10.c (working copy) > @@ -1,6 +1,6 @@ > /* Verify diagnostics for extended identifiers refer to UCNs (in the C > locale). Test #pragma pack diagnostics. */ > -/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */ > +/* { dg-do compile } */ > /* { dg-options "-std=gnu99 -fextended-identifiers" } */ > > #pragma pack(push) > Index: gcc/testsuite/gcc.dg/pragma-pack-4.c > =================================================================== > --- gcc/testsuite/gcc.dg/pragma-pack-4.c (revision 166951) > +++ gcc/testsuite/gcc.dg/pragma-pack-4.c (working copy) > @@ -1,6 +1,5 @@ > /* PR c/28286 */ > /* { dg-do compile } */ > -/* { dg-skip-if "no Pragma pack" { "avr-*-*" } { "*" } { "" } } */ > > > #pragma pack(0.5) /* { dg-warning "invalid constant" } */ > Index: gcc/testsuite/g++.dg/cpp/_Pragma1.C > =================================================================== > --- gcc/testsuite/g++.dg/cpp/_Pragma1.C (revision 166951) > +++ gcc/testsuite/g++.dg/cpp/_Pragma1.C (working copy) > @@ -1,8 +1,7 @@ > // PR c++/27748 > // This is supposed to succeed only if > -// the target defines HANDLE_PRAGMA_PACK_PUSH_POP > -// and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. > -// { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* mips-sgi-irix* sh*-[us]*-elf m32c-*-* *-*-vxworks alpha*-dec-osf* } } } } > +// the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. > +// { dg-do compile { target { ! { *-*-solaris2* } } } } > > #define push bar > #define foo _Pragma ("pack(push)") > Index: gcc/cp/parser.c > =================================================================== > --- gcc/cp/parser.c (revision 166951) > +++ gcc/cp/parser.c (working copy) > @@ -13828,10 +13828,8 @@ cp_parser_namespace_definition (cp_parse > /* Parse the body of the namespace. */ > cp_parser_namespace_body (parser); > > -#ifdef HANDLE_PRAGMA_VISIBILITY > if (has_visibility) > pop_visibility (1); > -#endif > > /* Finish the namespace. */ > pop_namespace (); > Index: gcc/cp/name-lookup.c > =================================================================== > --- gcc/cp/name-lookup.c (revision 166951) > +++ gcc/cp/name-lookup.c (working copy) > @@ -3239,7 +3239,6 @@ handle_namespace_attrs (tree ns, tree at > tree name = TREE_PURPOSE (d); > tree args = TREE_VALUE (d); > > -#ifdef HANDLE_PRAGMA_VISIBILITY > if (is_attribute_p ("visibility", name)) > { > tree x = args ? TREE_VALUE (args) : NULL_TREE; > @@ -3260,7 +3259,6 @@ handle_namespace_attrs (tree ns, tree at > saw_vis = true; > } > else > -#endif > { > warning (OPT_Wattributes, "%qD attribute directive ignored", > name); > Index: gcc/system.h > =================================================================== > --- gcc/system.h (revision 166951) > +++ gcc/system.h (working copy) > @@ -777,7 +777,8 @@ extern void fancy_abort (const char *, i > ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \ > ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \ > SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ > - TARGET_OPTION_TRANSLATE_TABLE > + TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \ > + HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK > > /* Hooks that are no longer used. */ > #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ > Index: gcc/config/alpha/linux.h > =================================================================== > --- gcc/config/alpha/linux.h (revision 166951) > +++ gcc/config/alpha/linux.h (working copy) > @@ -1,7 +1,7 @@ > /* Definitions of target machine for GNU compiler, > for Alpha Linux-based GNU systems. > - Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007 > - Free Software Foundation, Inc. > + Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009, > + 2010 Free Software Foundation, Inc. > Contributed by Richard Henderson. > > This file is part of GCC. > @@ -61,9 +61,6 @@ along with GCC; see the file COPYING3. > #undef WCHAR_TYPE > #define WCHAR_TYPE "int" > > -/* Define this so that all GNU/Linux targets handle the same pragmas. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) > > /* Determine whether the entire c99 runtime is present in the > Index: gcc/config/alpha/vms.h > =================================================================== > --- gcc/config/alpha/vms.h (revision 166951) > +++ gcc/config/alpha/vms.h (working copy) > @@ -69,8 +69,6 @@ along with GCC; see the file COPYING3. > #define POINTER_SIZE 32 > #define POINTERS_EXTEND_UNSIGNED 0 > > -#define HANDLE_SYSV_PRAGMA 1 > - > #define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */ > > /* The maximum alignment 'malloc' honors. */ > Index: gcc/config/alpha/elf.h > =================================================================== > --- gcc/config/alpha/elf.h (revision 166951) > +++ gcc/config/alpha/elf.h (working copy) > @@ -400,9 +400,6 @@ do { \ > "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ > %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" > > -/* We support #pragma. */ > -#define HANDLE_SYSV_PRAGMA 1 > - > /* Select a format to encode pointers in exception handling data. CODE > is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is > true if the symbol may be affected by dynamic relocations. > Index: gcc/config/alpha/osf5.h > =================================================================== > --- gcc/config/alpha/osf5.h (revision 166951) > +++ gcc/config/alpha/osf5.h (working copy) > @@ -268,9 +268,6 @@ __enable_execute_stack (void *addr) > #define TARGET_ASM_OPEN_PAREN "" > #define TARGET_ASM_CLOSE_PAREN "" > > -/* Handle #pragma weak and #pragma pack. */ > -#define HANDLE_SYSV_PRAGMA 1 > - > /* Handle #pragma extern_prefix. */ > #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1 > > Index: gcc/config/linux.h > =================================================================== > --- gcc/config/linux.h (revision 166951) > +++ gcc/config/linux.h (working copy) > @@ -102,9 +102,6 @@ see the files COPYING3 and COPYING.RUNTI > #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " > #endif > > -/* Define this so we can compile MS code for use with WINE. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > #undef LINK_GCC_C_SEQUENCE_SPEC > #define LINK_GCC_C_SEQUENCE_SPEC \ > "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" > Index: gcc/config/frv/frv.h > =================================================================== > --- gcc/config/frv/frv.h (revision 166951) > +++ gcc/config/frv/frv.h (working copy) > @@ -2306,13 +2306,6 @@ fprintf (STREAM, "\t.word .L%d\n", VALUE > `QImode'. */ > #define FUNCTION_MODE QImode > > -/* Define this macro to handle System V style pragmas: #pragma pack and > - #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is > - defined. > - > - Defined in svr4.h. */ > -#define HANDLE_SYSV_PRAGMA 1 > - > /* A C expression for the maximum number of instructions to execute via > conditional execution instructions instead of a branch. A value of > BRANCH_COST+1 is the default if the machine does not use > Index: gcc/config/elfos.h > =================================================================== > --- gcc/config/elfos.h (revision 166951) > +++ gcc/config/elfos.h (working copy) > @@ -65,10 +65,6 @@ see the files COPYING3 and COPYING.RUNTI > #define PCC_BITFIELD_TYPE_MATTERS 1 > #endif > > -/* Handle #pragma weak and #pragma pack. */ > - > -#define HANDLE_SYSV_PRAGMA 1 > - > /* All ELF targets can support DWARF-2. */ > > #define DWARF2_DEBUGGING_INFO 1 > Index: gcc/config/spu/spu.h > =================================================================== > --- gcc/config/spu/spu.h (revision 166951) > +++ gcc/config/spu/spu.h (working copy) > @@ -512,8 +512,6 @@ targetm.resolve_overloaded_builtin = spu > > #define NO_IMPLICIT_EXTERN_C 1 > > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* Canonicalize a comparison from one we don't have to one we do have. */ > #define CANONICALIZE_COMPARISON(CODE,OP0,OP1) \ > do { \ > Index: gcc/config/interix.h > =================================================================== > --- gcc/config/interix.h (revision 166951) > +++ gcc/config/interix.h (working copy) > @@ -61,9 +61,6 @@ for windows/multi thread */ > > #define STDC_0_IN_SYSTEM_HEADERS 1 > > -#define HANDLE_SYSV_PRAGMA 1 > -#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */ > - > /* Names to predefine in the preprocessor for this target machine. */ > > #define DBX_DEBUGGING_INFO 1 > Index: gcc/config/mep/mep.h > =================================================================== > --- gcc/config/mep/mep.h (revision 166951) > +++ gcc/config/mep/mep.h (working copy) > @@ -804,8 +804,6 @@ typedef struct > > #define REGISTER_TARGET_PRAGMAS() mep_register_pragmas () > > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* If defined, a C expression to determine the base term of address X. > This macro is used in only one place: `find_base_term' in alias.c. > > Index: gcc/config/m32r/linux.h > =================================================================== > --- gcc/config/m32r/linux.h (revision 166951) > +++ gcc/config/m32r/linux.h (working copy) > @@ -1,5 +1,5 @@ > /* Definitions for Renesas M32R running Linux-based GNU systems using ELF. > - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. > + Copyright (C) 2003, 2004, 2006, 2007, 2010 Free Software Foundation, Inc. > > This file is part of GCC. > > @@ -23,10 +23,6 @@ > supposed to be outputting something that will assemble under SVr4. > This gets us pretty close. */ > > -#define HANDLE_SYSV_PRAGMA > - > -#undef HANDLE_PRAGMA_PACK > - > #undef TARGET_VERSION > #define TARGET_VERSION fprintf (stderr, " (M32R GNU/Linux with ELF)"); > > Index: gcc/config/m32r/m32r.h > =================================================================== > --- gcc/config/m32r/m32r.h (revision 166951) > +++ gcc/config/m32r/m32r.h (working copy) > @@ -22,7 +22,6 @@ > - longlong.h? > */ > > -#undef HANDLE_SYSV_PRAGMA > #undef SIZE_TYPE > #undef PTRDIFF_TYPE > #undef WCHAR_TYPE > Index: gcc/config/i386/cygming.h > =================================================================== > --- gcc/config/i386/cygming.h (revision 166951) > +++ gcc/config/i386/cygming.h (working copy) > @@ -178,9 +178,6 @@ along with GCC; see the file COPYING3. > #undef LONG_TYPE_SIZE > #define LONG_TYPE_SIZE 32 > > -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > union tree_node; > #define TREE union tree_node * > > Index: gcc/config/i386/djgpp.h > =================================================================== > --- gcc/config/i386/djgpp.h (revision 166951) > +++ gcc/config/i386/djgpp.h (working copy) > @@ -24,11 +24,6 @@ along with GCC; see the file COPYING3. > /* Don't assume anything about the header files. */ > #define NO_IMPLICIT_EXTERN_C > > -#define HANDLE_SYSV_PRAGMA 1 > - > -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* If defined, a C expression whose value is a string containing the > assembler operation to identify the following data as > uninitialized global data. If not defined, and neither > Index: gcc/config/i386/netware.h > =================================================================== > --- gcc/config/i386/netware.h (revision 166951) > +++ gcc/config/i386/netware.h (working copy) > @@ -1,6 +1,7 @@ > /* Core target definitions for GCC for Intel 80x86 running Netware. > and using dwarf for the debugging format. > - Copyright (C) 1993, 1994, 2004, 2007, 2008 Free Software Foundation, Inc. > + Copyright (C) 1993, 1994, 2004, 2007, 2008, 2009, 2010 > + Free Software Foundation, Inc. > > Written by David V. Henkel-Wallace (gumby@cygnus.com) > > @@ -104,9 +105,6 @@ do { \ > #undef DBX_REGISTER_NUMBER > #define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n]) > > -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > /* Default structure packing is 1-byte. */ > #define TARGET_DEFAULT_PACK_STRUCT 1 > > Index: gcc/config/i386/i386-interix.h > =================================================================== > --- gcc/config/i386/i386-interix.h (revision 166951) > +++ gcc/config/i386/i386-interix.h (working copy) > @@ -1,6 +1,6 @@ > /* Target definitions for GCC for Intel 80386 running Interix > - Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008 > - Free Software Foundation, Inc. > + Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008, 2009, > + 2010 Free Software Foundation, Inc. > > Parts: > by Douglas B. Rupp (drupp@cs.washington.edu). > @@ -30,9 +30,6 @@ along with GCC; see the file COPYING3. > #define SDB_DEBUGGING_INFO 1 > #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG > > -#define HANDLE_SYSV_PRAGMA 1 > -#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */ > - > /* By default, target has a 80387, uses IEEE compatible arithmetic, > and returns float values in the 387 and needs stack probes > We also align doubles to 64-bits for MSVC default compatibility > Index: gcc/config/i386/vxworks.h > =================================================================== > --- gcc/config/i386/vxworks.h (revision 166951) > +++ gcc/config/i386/vxworks.h (working copy) > @@ -1,5 +1,5 @@ > /* IA32 VxWorks target definitions for GNU compiler. > - Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. > + Copyright (C) 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc. > Updated by CodeSourcery, LLC. > > This file is part of GCC. > @@ -18,8 +18,6 @@ You should have received a copy of the G > along with GCC; see the file COPYING3. If not see > <http://www.gnu.org/licenses/>. */ > > -#define HANDLE_SYSV_PRAGMA 1 > - > #undef TARGET_VERSION > #define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)"); > > Index: gcc/config/rx/rx.h > =================================================================== > --- gcc/config/rx/rx.h (revision 166951) > +++ gcc/config/rx/rx.h (working copy) > @@ -151,8 +151,6 @@ extern enum rx_cpu_types rx_cpu_type; > > #define LEGITIMATE_CONSTANT_P(X) rx_is_legitimate_constant (X) > > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > #define HAVE_PRE_DECCREMENT 1 > #define HAVE_POST_INCREMENT 1 > > Index: gcc/config/xtensa/elf.h > =================================================================== > --- gcc/config/xtensa/elf.h (revision 166951) > +++ gcc/config/xtensa/elf.h (working copy) > @@ -1,6 +1,6 @@ > /* Xtensa/Elf configuration. > Derived from the configuration for GCC for Intel i386 running Linux. > - Copyright (C) 2001, 2003, 2006, 2007 Free Software Foundation, Inc. > + Copyright (C) 2001, 2003, 2006, 2007, 2010 Free Software Foundation, Inc. > > This file is part of GCC. > > @@ -98,5 +98,3 @@ do \ > "GCC", PREFIX_PRIORITY_LAST, 0, 0); \ > } \ > while (0) > - > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > Index: gcc/config/stormy16/stormy16.h > =================================================================== > --- gcc/config/stormy16/stormy16.h (revision 166951) > +++ gcc/config/stormy16/stormy16.h (working copy) > @@ -587,5 +587,3 @@ enum reg_class > #define FUNCTION_MODE HImode > > #define NO_IMPLICIT_EXTERN_C > - > -#define HANDLE_SYSV_PRAGMA 1 > Index: gcc/config/cris/cris.h > =================================================================== > --- gcc/config/cris/cris.h (revision 166951) > +++ gcc/config/cris/cris.h (working copy) > @@ -1334,9 +1334,6 @@ enum cris_pic_symbol_type > > #define NO_IMPLICIT_EXTERN_C > > -/* No specific purpose other than warningless compatibility. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* > * Local variables: > * eval: (c-set-style "gnu") > Index: gcc/config/netbsd.h > =================================================================== > --- gcc/config/netbsd.h (revision 166951) > +++ gcc/config/netbsd.h (working copy) > @@ -1,6 +1,6 @@ > /* Base configuration file for all NetBSD targets. > Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, > - 2007 Free Software Foundation, Inc. > + 2007, 2009, 2010 Free Software Foundation, Inc. > > This file is part of GCC. > > @@ -158,10 +158,6 @@ along with GCC; see the file COPYING3. > #undef TARGET_POSIX_IO > #define TARGET_POSIX_IO > > -/* Handle #pragma weak and #pragma pack. */ > - > -#define HANDLE_SYSV_PRAGMA 1 > - > /* Don't assume anything about the header files. */ > #undef NO_IMPLICIT_EXTERN_C > #define NO_IMPLICIT_EXTERN_C 1 > @@ -224,6 +220,3 @@ __enable_execute_stack (void *addr) > /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */ \ > (void) mprotect (page, end - page, 7); \ > } > - > -/* Define this so we can compile MS code for use with WINE. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > Index: gcc/config/ia64/ia64.h > =================================================================== > --- gcc/config/ia64/ia64.h (revision 166951) > +++ gcc/config/ia64/ia64.h (working copy) > @@ -1778,12 +1778,6 @@ do { \ > > #define FUNCTION_MODE Pmode > > -/* Define this macro to handle System V style pragmas: #pragma pack and > - #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is > - defined. */ > - > -#define HANDLE_SYSV_PRAGMA 1 > - > /* A C expression for the maximum number of instructions to execute via > conditional execution instructions instead of a branch. A value of > BRANCH_COST+1 is the default if the machine does not use > Index: gcc/config/ia64/hpux.h > =================================================================== > --- gcc/config/ia64/hpux.h (revision 166951) > +++ gcc/config/ia64/hpux.h (working copy) > @@ -1,5 +1,5 @@ > /* Definitions of target machine GNU compiler. IA-64 version. > - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 > + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 > Free Software Foundation, Inc. > Contributed by Steve Ellcey <sje@cup.hp.com> and > Reva Cuthbertson <reva@cup.hp.com> > @@ -213,9 +213,6 @@ do { \ > #undef NO_PROFILE_COUNTERS > #define NO_PROFILE_COUNTERS 0 > > -#undef HANDLE_PRAGMA_PACK_PUSH_POP > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > /* The HP-UX linker has a bug that causes calls from functions in > .text.unlikely to functions in .text to cause a segfault. Until > it is fixed, prevent code from being put into .text.unlikely or > Index: gcc/config/rs6000/aix.h > =================================================================== > --- gcc/config/rs6000/aix.h (revision 166951) > +++ gcc/config/rs6000/aix.h (working copy) > @@ -56,9 +56,6 @@ > #define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref > #endif > > -/* Handle #pragma weak and #pragma pack. */ > -#define HANDLE_SYSV_PRAGMA 1 > - > /* This is the only version of nm that collect2 can work with. */ > #define REAL_NM_FILE_NAME "/usr/ucb/nm" > > Index: gcc/config/rs6000/sysv4.h > =================================================================== > --- gcc/config/rs6000/sysv4.h (revision 166951) > +++ gcc/config/rs6000/sysv4.h (working copy) > @@ -1062,18 +1062,6 @@ ncrtn.o%s" > /* Function name to call to do profiling. */ > #define RS6000_MCOUNT "_mcount" > > -/* Define this macro (to a value of 1) if you want to support the > - Win32 style pragmas #pragma pack(push,<n>)' and #pragma > - pack(pop)'. The pack(push,<n>) pragma specifies the maximum > - alignment (in bytes) of fields within a structure, in much the > - same way as the __aligned__' and __packed__' __attribute__'s > - do. A pack value of zero resets the behavior to the default. > - Successive invocations of this pragma cause the previous values to > - be stacked, so that invocations of #pragma pack(pop)' will return > - to the previous value. */ > - > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* Select a format to encode pointers in exception handling data. CODE > is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is > true if the symbol may be affected by dynamic relocations. */ > Index: gcc/config/darwin.h > =================================================================== > --- gcc/config/darwin.h (revision 166951) > +++ gcc/config/darwin.h (working copy) > @@ -869,11 +869,6 @@ enum machopic_addr_class { > #undef TARGET_ASM_NAMED_SECTION > #define TARGET_ASM_NAMED_SECTION darwin_asm_named_section > > -/* Handle pragma weak and pragma pack. */ > -#define HANDLE_SYSV_PRAGMA 1 > - > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > #define DARWIN_REGISTER_TARGET_PRAGMAS() \ > do { \ > if (!flag_preprocess_only) \ > Index: gcc/config/score/elf.h > =================================================================== > --- gcc/config/score/elf.h (revision 166951) > +++ gcc/config/score/elf.h (working copy) > @@ -1,5 +1,5 @@ > /* elf.h for Sunplus S+CORE processor > - Copyright (C) 2005, 2007 Free Software Foundation, Inc. > + Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. > > This file is part of GCC. > > @@ -95,6 +95,3 @@ > > #undef ENDFILE_SPEC > #define ENDFILE_SPEC "crtend%O%s crtn%O%s" > - > -/* We support #pragma. */ > -#define HANDLE_SYSV_PRAGMA 1 > Index: gcc/config/arm/arm.h > =================================================================== > --- gcc/config/arm/arm.h (revision 166951) > +++ gcc/config/arm/arm.h (working copy) > @@ -2097,9 +2097,6 @@ typedef struct > #define ARM_INDEX_REGISTER_RTX_P(X) \ > (GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X)) > > -/* Define this for compatibility reasons. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > /* Specify the machine mode that this machine uses > for the index in the tablejump instruction. */ > #define CASE_VECTOR_MODE Pmode > Index: gcc/config/arm/netbsd.h > =================================================================== > --- gcc/config/arm/netbsd.h (revision 166951) > +++ gcc/config/arm/netbsd.h (working copy) > @@ -1,5 +1,5 @@ > /* NetBSD/arm a.out version. > - Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008 > + Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008, 2010 > Free Software Foundation, Inc. > Contributed by Mark Brinicombe (amb@physig.ph.kcl.ac.uk) > > @@ -71,8 +71,6 @@ > #undef PTRDIFF_TYPE > #define PTRDIFF_TYPE "int" > > -#define HANDLE_SYSV_PRAGMA 1 > - > /* We don't have any limit on the length as out debugger is GDB. */ > #undef DBX_CONTIN_LENGTH > > Index: gcc/config/pa/pa-hpux.h > =================================================================== > --- gcc/config/pa/pa-hpux.h (revision 166951) > +++ gcc/config/pa/pa-hpux.h (working copy) > @@ -1,5 +1,5 @@ > /* Definitions of target machine for GNU compiler, for HP-UX. > - Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008 > + Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008, 2009, 2010 > Free Software Foundation, Inc. > > This file is part of GCC. > @@ -114,12 +114,4 @@ along with GCC; see the file COPYING3. > #undef TARGET_HPUX_UNWIND_LIBRARY > #define TARGET_HPUX_UNWIND_LIBRARY 1 > > -/* Handle #pragma weak and #pragma pack. */ > -#undef HANDLE_SYSV_PRAGMA > -#define HANDLE_SYSV_PRAGMA > - > -/* Define this so we can compile MS code for use with WINE. */ > -#undef HANDLE_PRAGMA_PACK_PUSH_POP > -#define HANDLE_PRAGMA_PACK_PUSH_POP > - > #define MD_UNWIND_SUPPORT "config/pa/hpux-unwind.h" > Index: gcc/config/mips/elf.h > =================================================================== > --- gcc/config/mips/elf.h (revision 166951) > +++ gcc/config/mips/elf.h (working copy) > @@ -1,5 +1,5 @@ > /* Target macros for mips*-elf targets. > - Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007 > + Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007, 2010 > Free Software Foundation, Inc. > > This file is part of GCC. > @@ -49,5 +49,3 @@ along with GCC; see the file COPYING3. > #define ENDFILE_SPEC "crtend%O%s crtn%O%s" > > #define NO_IMPLICIT_EXTERN_C 1 > - > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > Index: gcc/config/mips/sde.h > =================================================================== > --- gcc/config/mips/sde.h (revision 166951) > +++ gcc/config/mips/sde.h (working copy) > @@ -94,9 +94,6 @@ along with GCC; see the file COPYING3. > #undef PTRDIFF_TYPE > #define PTRDIFF_TYPE "long int" > > -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /* Use standard ELF-style local labels (not '$' as on early Irix). */ > #undef LOCAL_LABEL_PREFIX > #define LOCAL_LABEL_PREFIX "." > Index: gcc/config/openbsd.h > =================================================================== > --- gcc/config/openbsd.h (revision 166951) > +++ gcc/config/openbsd.h (working copy) > @@ -282,12 +282,6 @@ do { \ > /* Storage layout. */ > > > -/* bug work around: we don't want to support #pragma weak, but the current > - code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to > - work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly, > - as this depends on a few other details as well... */ > -#define HANDLE_SYSV_PRAGMA 1 > - > /* Stack is explicitly denied execution rights on OpenBSD platforms. */ > #define ENABLE_EXECUTE_STACK \ > extern void __enable_execute_stack (void *); \ > Index: gcc/config/freebsd.h > =================================================================== > --- gcc/config/freebsd.h (revision 166951) > +++ gcc/config/freebsd.h (working copy) > @@ -45,9 +45,6 @@ along with GCC; see the file COPYING3. > #undef LIB_SPEC > #define LIB_SPEC FBSD_LIB_SPEC > > -/* Define this so we can compile MS code for use with WINE. */ > -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 > - > /************************[ Target stuff ]***********************************/ > > /* All FreeBSD Architectures support the ELF object file format. */ > Index: gcc/config/mmix/mmix.h > =================================================================== > --- gcc/config/mmix/mmix.h (revision 166951) > +++ gcc/config/mmix/mmix.h (working copy) > @@ -887,8 +887,6 @@ typedef struct { int regs; int lib; } CU > > #define NO_IMPLICIT_EXTERN_C > > -#define HANDLE_SYSV_PRAGMA 1 > - > /* These are checked. */ > #define DOLLARS_IN_IDENTIFIERS 0 > #define NO_DOLLAR_IN_LABEL > > -- > Joseph S. Myers > joseph@codesourcery.com >
Index: gcc/doc/tm.texi =================================================================== --- gcc/doc/tm.texi (revision 166951) +++ gcc/doc/tm.texi (working copy) @@ -10666,55 +10666,8 @@ rule to the makefile fragment pointed to how to build this object file. @end deftypefun -@findex #pragma -@findex pragma -@defmac HANDLE_SYSV_PRAGMA -Define this macro (to a value of 1) if you want the System V style -pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name> -[=<value>]} to be supported by gcc. - -The pack pragma specifies the maximum alignment (in bytes) of fields -within a structure, in much the same way as the @samp{__aligned__} and -@samp{__packed__} @code{__attribute__}s do. A pack value of zero resets -the behavior to the default. - -A subtlety for Microsoft Visual C/C++ style bit-field packing -(e.g.@: -mms-bitfields) for targets that support it: -When a bit-field is inserted into a packed record, the whole size -of the underlying type is used by one or more same-size adjacent -bit-fields (that is, if its long:3, 32 bits is used in the record, -and any additional adjacent long bit-fields are packed into the same -chunk of 32 bits. However, if the size changes, a new field of that -size is allocated). - -If both MS bit-fields and @samp{__attribute__((packed))} are used, -the latter will take precedence. If @samp{__attribute__((packed))} is -used on a single field when MS bit-fields are in use, it will take -precedence for that field, but the alignment of the rest of the structure -may affect its placement. - -The weak pragma only works if @code{SUPPORTS_WEAK} and -@code{ASM_WEAKEN_LABEL} are defined. If enabled it allows the creation -of specifically named weak labels, optionally with a value. -@end defmac - -@findex #pragma -@findex pragma -@defmac HANDLE_PRAGMA_PACK_PUSH_POP -Define this macro (to a value of 1) if you want to support the Win32 -style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma -pack(pop)}. The @samp{pack(push,[@var{n}])} pragma specifies the maximum -alignment (in bytes) of fields within a structure, in much the same way as -the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do. A -pack value of zero resets the behavior to the default. Successive -invocations of this pragma cause the previous values to be stacked, so -that invocations of @samp{#pragma pack(pop)} will return to the previous -value. -@end defmac - @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION -Define this macro, as well as -@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the +Define this macro if macros should be expanded in the arguments of @samp{#pragma pack}. @end defmac Index: gcc/doc/tm.texi.in =================================================================== --- gcc/doc/tm.texi.in (revision 166951) +++ gcc/doc/tm.texi.in (working copy) @@ -10628,55 +10628,8 @@ rule to the makefile fragment pointed to how to build this object file. @end deftypefun -@findex #pragma -@findex pragma -@defmac HANDLE_SYSV_PRAGMA -Define this macro (to a value of 1) if you want the System V style -pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name> -[=<value>]} to be supported by gcc. - -The pack pragma specifies the maximum alignment (in bytes) of fields -within a structure, in much the same way as the @samp{__aligned__} and -@samp{__packed__} @code{__attribute__}s do. A pack value of zero resets -the behavior to the default. - -A subtlety for Microsoft Visual C/C++ style bit-field packing -(e.g.@: -mms-bitfields) for targets that support it: -When a bit-field is inserted into a packed record, the whole size -of the underlying type is used by one or more same-size adjacent -bit-fields (that is, if its long:3, 32 bits is used in the record, -and any additional adjacent long bit-fields are packed into the same -chunk of 32 bits. However, if the size changes, a new field of that -size is allocated). - -If both MS bit-fields and @samp{__attribute__((packed))} are used, -the latter will take precedence. If @samp{__attribute__((packed))} is -used on a single field when MS bit-fields are in use, it will take -precedence for that field, but the alignment of the rest of the structure -may affect its placement. - -The weak pragma only works if @code{SUPPORTS_WEAK} and -@code{ASM_WEAKEN_LABEL} are defined. If enabled it allows the creation -of specifically named weak labels, optionally with a value. -@end defmac - -@findex #pragma -@findex pragma -@defmac HANDLE_PRAGMA_PACK_PUSH_POP -Define this macro (to a value of 1) if you want to support the Win32 -style pragmas @samp{#pragma pack(push[,@var{n}])} and @samp{#pragma -pack(pop)}. The @samp{pack(push,[@var{n}])} pragma specifies the maximum -alignment (in bytes) of fields within a structure, in much the same way as -the @samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do. A -pack value of zero resets the behavior to the default. Successive -invocations of this pragma cause the previous values to be stacked, so -that invocations of @samp{#pragma pack(pop)} will return to the previous -value. -@end defmac - @defmac HANDLE_PRAGMA_PACK_WITH_EXPANSION -Define this macro, as well as -@code{HANDLE_SYSV_PRAGMA}, if macros should be expanded in the +Define this macro if macros should be expanded in the arguments of @samp{#pragma pack}. @end defmac Index: gcc/c-family/c-pragma.c =================================================================== --- gcc/c-family/c-pragma.c (revision 166951) +++ gcc/c-family/c-pragma.c (working copy) @@ -54,10 +54,8 @@ typedef struct GTY(()) align_stack { static GTY(()) struct align_stack * alignment_stack; -#ifdef HANDLE_PRAGMA_PACK static void handle_pragma_pack (cpp_reader *); -#ifdef HANDLE_PRAGMA_PACK_PUSH_POP /* If we have a "global" #pragma pack(<n>) in effect when the first #pragma pack(push,<n>) is encountered, this stores the value of maximum_field_alignment in effect. When the final pop_alignment() @@ -125,13 +123,6 @@ pop_alignment (tree id) alignment_stack = entry; } -#else /* not HANDLE_PRAGMA_PACK_PUSH_POP */ -#define SET_GLOBAL_ALIGNMENT(ALIGN) (maximum_field_alignment = (ALIGN)) -#define push_alignment(ID, N) \ - GCC_BAD ("#pragma pack(push[, id], <n>) is not supported on this target") -#define pop_alignment(ID) \ - GCC_BAD ("#pragma pack(pop[, id], <n>) is not supported on this target") -#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ /* #pragma pack () #pragma pack (N) @@ -244,7 +235,6 @@ handle_pragma_pack (cpp_reader * ARG_UNU case pop: pop_alignment (id); break; } } -#endif /* HANDLE_PRAGMA_PACK */ typedef struct GTY(()) pending_weak_d { @@ -257,7 +247,6 @@ DEF_VEC_ALLOC_O(pending_weak,gc); static GTY(()) VEC(pending_weak,gc) *pending_weaks; -#ifdef HANDLE_PRAGMA_WEAK static void apply_pragma_weak (tree, tree); static void handle_pragma_weak (cpp_reader *); @@ -380,17 +369,6 @@ handle_pragma_weak (cpp_reader * ARG_UNU pe->value = value; } } -#else -void -maybe_apply_pragma_weak (tree ARG_UNUSED (decl)) -{ -} - -void -maybe_apply_pending_pragma_weaks (void) -{ -} -#endif /* HANDLE_PRAGMA_WEAK */ /* GCC supports two #pragma directives for renaming the external symbol associated with a declaration (DECL_ASSEMBLER_NAME), for @@ -617,7 +595,6 @@ maybe_apply_renaming_pragma (tree decl, } -#ifdef HANDLE_PRAGMA_VISIBILITY static void handle_pragma_visibility (cpp_reader *); static VEC (int, heap) *visstack; @@ -710,8 +687,6 @@ handle_pragma_visibility (cpp_reader *du warning (OPT_Wpragmas, "junk at end of %<#pragma GCC visibility%>"); } -#endif - static void handle_pragma_diagnostic(cpp_reader *ARG_UNUSED(dummy)) { @@ -1316,19 +1291,13 @@ init_pragma (void) cpp_register_deferred_pragma (parse_in, "GCC", "pch_preprocess", PRAGMA_GCC_PCH_PREPROCESS, false, false); -#ifdef HANDLE_PRAGMA_PACK #ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION c_register_pragma_with_expansion (0, "pack", handle_pragma_pack); #else c_register_pragma (0, "pack", handle_pragma_pack); #endif -#endif -#ifdef HANDLE_PRAGMA_WEAK c_register_pragma (0, "weak", handle_pragma_weak); -#endif -#ifdef HANDLE_PRAGMA_VISIBILITY c_register_pragma ("GCC", "visibility", handle_pragma_visibility); -#endif c_register_pragma ("GCC", "diagnostic", handle_pragma_diagnostic); c_register_pragma ("GCC", "target", handle_pragma_target); Index: gcc/c-family/c-pragma.h =================================================================== --- gcc/c-family/c-pragma.h (revision 166951) +++ gcc/c-family/c-pragma.h (working copy) @@ -1,6 +1,6 @@ /* Pragma related interfaces. Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2007, 2008 Free Software Foundation, Inc. + 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -75,26 +75,9 @@ typedef enum pragma_omp_clause { extern struct cpp_reader* parse_in; -#define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK - -#ifdef HANDLE_SYSV_PRAGMA -/* We always support #pragma pack for SYSV pragmas. */ -#ifndef HANDLE_PRAGMA_PACK -#define HANDLE_PRAGMA_PACK 1 -#endif -#endif /* HANDLE_SYSV_PRAGMA */ - - -#ifdef HANDLE_PRAGMA_PACK_PUSH_POP -/* If we are supporting #pragma pack(push... then we automatically - support #pragma pack(<n>) */ -#define HANDLE_PRAGMA_PACK 1 -#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ - /* It's safe to always leave visibility pragma enabled as if visibility is not supported on the host OS platform the statements are ignored. */ -#define HANDLE_PRAGMA_VISIBILITY 1 extern void push_visibility (const char *, int); extern bool pop_visibility (int); Index: gcc/testsuite/gcc.dg/pragma-align.c =================================================================== --- gcc/testsuite/gcc.dg/pragma-align.c (revision 166951) +++ gcc/testsuite/gcc.dg/pragma-align.c (working copy) @@ -1,6 +1,6 @@ -/* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */ +/* Prove that pragma alignment handling works somewhat. */ -/* { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* *-*-solaris2.* } } */ +/* { dg-do run } */ extern void abort (void); Index: gcc/testsuite/gcc.dg/cpp/_Pragma6.c =================================================================== --- gcc/testsuite/gcc.dg/cpp/_Pragma6.c (revision 166951) +++ gcc/testsuite/gcc.dg/cpp/_Pragma6.c (working copy) @@ -1,8 +1,7 @@ /* PR c/27747 */ /* This is supposed to succeed only if - the target defines HANDLE_PRAGMA_PACK_PUSH_POP - and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */ -/* { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* sh*-[us]*-elf m32c-*-* *-*-vxworks moxie-*-* mips-sgi-irix* alpha*-dec-osf* } } } } */ + the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */ +/* { dg-do compile { target { ! { *-*-solaris2* } } } } */ #define push bar #define foo _Pragma ("pack(push)") Index: gcc/testsuite/gcc.dg/pack-test-1.c =================================================================== --- gcc/testsuite/gcc.dg/pack-test-1.c (revision 166951) +++ gcc/testsuite/gcc.dg/pack-test-1.c (working copy) @@ -1,7 +1,7 @@ /* Test semantics of #pragma pack. Contributed by Mike Coleman <mcoleman2@kc.rr.com> */ -/* { dg-do compile { target { { *-*-linux* *-*-cygwin* powerpc*-*-eabi* } && { ! default_packed } } } } */ +/* { dg-do compile { target { ! default_packed } } } */ /* Mainly we're just testing whether pushing and popping seem to be working correctly, and verifying the (alignment == 1) case, which Index: gcc/testsuite/gcc.dg/pack-test-2.c =================================================================== --- gcc/testsuite/gcc.dg/pack-test-2.c (revision 166951) +++ gcc/testsuite/gcc.dg/pack-test-2.c (working copy) @@ -1,7 +1,7 @@ /* Tests for syntax checking of #pragma pack. Contributed by Mike Coleman <mcoleman2@kc.rr.com> */ -/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */ +/* { dg-do compile } */ #pragma pack(pop) /* { dg-warning "without matching" } */ Index: gcc/testsuite/gcc.dg/ucnid-10.c =================================================================== --- gcc/testsuite/gcc.dg/ucnid-10.c (revision 166951) +++ gcc/testsuite/gcc.dg/ucnid-10.c (working copy) @@ -1,6 +1,6 @@ /* Verify diagnostics for extended identifiers refer to UCNs (in the C locale). Test #pragma pack diagnostics. */ -/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */ +/* { dg-do compile } */ /* { dg-options "-std=gnu99 -fextended-identifiers" } */ #pragma pack(push) Index: gcc/testsuite/gcc.dg/pragma-pack-4.c =================================================================== --- gcc/testsuite/gcc.dg/pragma-pack-4.c (revision 166951) +++ gcc/testsuite/gcc.dg/pragma-pack-4.c (working copy) @@ -1,6 +1,5 @@ /* PR c/28286 */ /* { dg-do compile } */ -/* { dg-skip-if "no Pragma pack" { "avr-*-*" } { "*" } { "" } } */ #pragma pack(0.5) /* { dg-warning "invalid constant" } */ Index: gcc/testsuite/g++.dg/cpp/_Pragma1.C =================================================================== --- gcc/testsuite/g++.dg/cpp/_Pragma1.C (revision 166951) +++ gcc/testsuite/g++.dg/cpp/_Pragma1.C (working copy) @@ -1,8 +1,7 @@ // PR c++/27748 // This is supposed to succeed only if -// the target defines HANDLE_PRAGMA_PACK_PUSH_POP -// and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. -// { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* mips-sgi-irix* sh*-[us]*-elf m32c-*-* *-*-vxworks alpha*-dec-osf* } } } } +// the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. +// { dg-do compile { target { ! { *-*-solaris2* } } } } #define push bar #define foo _Pragma ("pack(push)") Index: gcc/cp/parser.c =================================================================== --- gcc/cp/parser.c (revision 166951) +++ gcc/cp/parser.c (working copy) @@ -13828,10 +13828,8 @@ cp_parser_namespace_definition (cp_parse /* Parse the body of the namespace. */ cp_parser_namespace_body (parser); -#ifdef HANDLE_PRAGMA_VISIBILITY if (has_visibility) pop_visibility (1); -#endif /* Finish the namespace. */ pop_namespace (); Index: gcc/cp/name-lookup.c =================================================================== --- gcc/cp/name-lookup.c (revision 166951) +++ gcc/cp/name-lookup.c (working copy) @@ -3239,7 +3239,6 @@ handle_namespace_attrs (tree ns, tree at tree name = TREE_PURPOSE (d); tree args = TREE_VALUE (d); -#ifdef HANDLE_PRAGMA_VISIBILITY if (is_attribute_p ("visibility", name)) { tree x = args ? TREE_VALUE (args) : NULL_TREE; @@ -3260,7 +3259,6 @@ handle_namespace_attrs (tree ns, tree at saw_vis = true; } else -#endif { warning (OPT_Wattributes, "%qD attribute directive ignored", name); Index: gcc/system.h =================================================================== --- gcc/system.h (revision 166951) +++ gcc/system.h (working copy) @@ -777,7 +777,8 @@ extern void fancy_abort (const char *, i ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \ ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \ SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ - TARGET_OPTION_TRANSLATE_TABLE + TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \ + HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ Index: gcc/config/alpha/linux.h =================================================================== --- gcc/config/alpha/linux.h (revision 166951) +++ gcc/config/alpha/linux.h (working copy) @@ -1,7 +1,7 @@ /* Definitions of target machine for GNU compiler, for Alpha Linux-based GNU systems. - Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009, + 2010 Free Software Foundation, Inc. Contributed by Richard Henderson. This file is part of GCC. @@ -61,9 +61,6 @@ along with GCC; see the file COPYING3. #undef WCHAR_TYPE #define WCHAR_TYPE "int" -/* Define this so that all GNU/Linux targets handle the same pragmas. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP - #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) /* Determine whether the entire c99 runtime is present in the Index: gcc/config/alpha/vms.h =================================================================== --- gcc/config/alpha/vms.h (revision 166951) +++ gcc/config/alpha/vms.h (working copy) @@ -69,8 +69,6 @@ along with GCC; see the file COPYING3. #define POINTER_SIZE 32 #define POINTERS_EXTEND_UNSIGNED 0 -#define HANDLE_SYSV_PRAGMA 1 - #define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */ /* The maximum alignment 'malloc' honors. */ Index: gcc/config/alpha/elf.h =================================================================== --- gcc/config/alpha/elf.h (revision 166951) +++ gcc/config/alpha/elf.h (working copy) @@ -400,9 +400,6 @@ do { \ "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" -/* We support #pragma. */ -#define HANDLE_SYSV_PRAGMA 1 - /* Select a format to encode pointers in exception handling data. CODE is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is true if the symbol may be affected by dynamic relocations. Index: gcc/config/alpha/osf5.h =================================================================== --- gcc/config/alpha/osf5.h (revision 166951) +++ gcc/config/alpha/osf5.h (working copy) @@ -268,9 +268,6 @@ __enable_execute_stack (void *addr) #define TARGET_ASM_OPEN_PAREN "" #define TARGET_ASM_CLOSE_PAREN "" -/* Handle #pragma weak and #pragma pack. */ -#define HANDLE_SYSV_PRAGMA 1 - /* Handle #pragma extern_prefix. */ #define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1 Index: gcc/config/linux.h =================================================================== --- gcc/config/linux.h (revision 166951) +++ gcc/config/linux.h (working copy) @@ -102,9 +102,6 @@ see the files COPYING3 and COPYING.RUNTI #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " #endif -/* Define this so we can compile MS code for use with WINE. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP - #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" Index: gcc/config/frv/frv.h =================================================================== --- gcc/config/frv/frv.h (revision 166951) +++ gcc/config/frv/frv.h (working copy) @@ -2306,13 +2306,6 @@ fprintf (STREAM, "\t.word .L%d\n", VALUE `QImode'. */ #define FUNCTION_MODE QImode -/* Define this macro to handle System V style pragmas: #pragma pack and - #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is - defined. - - Defined in svr4.h. */ -#define HANDLE_SYSV_PRAGMA 1 - /* A C expression for the maximum number of instructions to execute via conditional execution instructions instead of a branch. A value of BRANCH_COST+1 is the default if the machine does not use Index: gcc/config/elfos.h =================================================================== --- gcc/config/elfos.h (revision 166951) +++ gcc/config/elfos.h (working copy) @@ -65,10 +65,6 @@ see the files COPYING3 and COPYING.RUNTI #define PCC_BITFIELD_TYPE_MATTERS 1 #endif -/* Handle #pragma weak and #pragma pack. */ - -#define HANDLE_SYSV_PRAGMA 1 - /* All ELF targets can support DWARF-2. */ #define DWARF2_DEBUGGING_INFO 1 Index: gcc/config/spu/spu.h =================================================================== --- gcc/config/spu/spu.h (revision 166951) +++ gcc/config/spu/spu.h (working copy) @@ -512,8 +512,6 @@ targetm.resolve_overloaded_builtin = spu #define NO_IMPLICIT_EXTERN_C 1 -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* Canonicalize a comparison from one we don't have to one we do have. */ #define CANONICALIZE_COMPARISON(CODE,OP0,OP1) \ do { \ Index: gcc/config/interix.h =================================================================== --- gcc/config/interix.h (revision 166951) +++ gcc/config/interix.h (working copy) @@ -61,9 +61,6 @@ for windows/multi thread */ #define STDC_0_IN_SYSTEM_HEADERS 1 -#define HANDLE_SYSV_PRAGMA 1 -#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */ - /* Names to predefine in the preprocessor for this target machine. */ #define DBX_DEBUGGING_INFO 1 Index: gcc/config/mep/mep.h =================================================================== --- gcc/config/mep/mep.h (revision 166951) +++ gcc/config/mep/mep.h (working copy) @@ -804,8 +804,6 @@ typedef struct #define REGISTER_TARGET_PRAGMAS() mep_register_pragmas () -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* If defined, a C expression to determine the base term of address X. This macro is used in only one place: `find_base_term' in alias.c. Index: gcc/config/m32r/linux.h =================================================================== --- gcc/config/m32r/linux.h (revision 166951) +++ gcc/config/m32r/linux.h (working copy) @@ -1,5 +1,5 @@ /* Definitions for Renesas M32R running Linux-based GNU systems using ELF. - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -23,10 +23,6 @@ supposed to be outputting something that will assemble under SVr4. This gets us pretty close. */ -#define HANDLE_SYSV_PRAGMA - -#undef HANDLE_PRAGMA_PACK - #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (M32R GNU/Linux with ELF)"); Index: gcc/config/m32r/m32r.h =================================================================== --- gcc/config/m32r/m32r.h (revision 166951) +++ gcc/config/m32r/m32r.h (working copy) @@ -22,7 +22,6 @@ - longlong.h? */ -#undef HANDLE_SYSV_PRAGMA #undef SIZE_TYPE #undef PTRDIFF_TYPE #undef WCHAR_TYPE Index: gcc/config/i386/cygming.h =================================================================== --- gcc/config/i386/cygming.h (revision 166951) +++ gcc/config/i386/cygming.h (working copy) @@ -178,9 +178,6 @@ along with GCC; see the file COPYING3. #undef LONG_TYPE_SIZE #define LONG_TYPE_SIZE 32 -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - union tree_node; #define TREE union tree_node * Index: gcc/config/i386/djgpp.h =================================================================== --- gcc/config/i386/djgpp.h (revision 166951) +++ gcc/config/i386/djgpp.h (working copy) @@ -24,11 +24,6 @@ along with GCC; see the file COPYING3. /* Don't assume anything about the header files. */ #define NO_IMPLICIT_EXTERN_C -#define HANDLE_SYSV_PRAGMA 1 - -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* If defined, a C expression whose value is a string containing the assembler operation to identify the following data as uninitialized global data. If not defined, and neither Index: gcc/config/i386/netware.h =================================================================== --- gcc/config/i386/netware.h (revision 166951) +++ gcc/config/i386/netware.h (working copy) @@ -1,6 +1,7 @@ /* Core target definitions for GCC for Intel 80x86 running Netware. and using dwarf for the debugging format. - Copyright (C) 1993, 1994, 2004, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2004, 2007, 2008, 2009, 2010 + Free Software Foundation, Inc. Written by David V. Henkel-Wallace (gumby@cygnus.com) @@ -104,9 +105,6 @@ do { \ #undef DBX_REGISTER_NUMBER #define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n]) -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP - /* Default structure packing is 1-byte. */ #define TARGET_DEFAULT_PACK_STRUCT 1 Index: gcc/config/i386/i386-interix.h =================================================================== --- gcc/config/i386/i386-interix.h (revision 166951) +++ gcc/config/i386/i386-interix.h (working copy) @@ -1,6 +1,6 @@ /* Target definitions for GCC for Intel 80386 running Interix - Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008 - Free Software Foundation, Inc. + Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008, 2009, + 2010 Free Software Foundation, Inc. Parts: by Douglas B. Rupp (drupp@cs.washington.edu). @@ -30,9 +30,6 @@ along with GCC; see the file COPYING3. #define SDB_DEBUGGING_INFO 1 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG -#define HANDLE_SYSV_PRAGMA 1 -#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */ - /* By default, target has a 80387, uses IEEE compatible arithmetic, and returns float values in the 387 and needs stack probes We also align doubles to 64-bits for MSVC default compatibility Index: gcc/config/i386/vxworks.h =================================================================== --- gcc/config/i386/vxworks.h (revision 166951) +++ gcc/config/i386/vxworks.h (working copy) @@ -1,5 +1,5 @@ /* IA32 VxWorks target definitions for GNU compiler. - Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc. Updated by CodeSourcery, LLC. This file is part of GCC. @@ -18,8 +18,6 @@ You should have received a copy of the G along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ -#define HANDLE_SYSV_PRAGMA 1 - #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)"); Index: gcc/config/rx/rx.h =================================================================== --- gcc/config/rx/rx.h (revision 166951) +++ gcc/config/rx/rx.h (working copy) @@ -151,8 +151,6 @@ extern enum rx_cpu_types rx_cpu_type; #define LEGITIMATE_CONSTANT_P(X) rx_is_legitimate_constant (X) -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - #define HAVE_PRE_DECCREMENT 1 #define HAVE_POST_INCREMENT 1 Index: gcc/config/xtensa/elf.h =================================================================== --- gcc/config/xtensa/elf.h (revision 166951) +++ gcc/config/xtensa/elf.h (working copy) @@ -1,6 +1,6 @@ /* Xtensa/Elf configuration. Derived from the configuration for GCC for Intel i386 running Linux. - Copyright (C) 2001, 2003, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2006, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -98,5 +98,3 @@ do \ "GCC", PREFIX_PRIORITY_LAST, 0, 0); \ } \ while (0) - -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 Index: gcc/config/stormy16/stormy16.h =================================================================== --- gcc/config/stormy16/stormy16.h (revision 166951) +++ gcc/config/stormy16/stormy16.h (working copy) @@ -587,5 +587,3 @@ enum reg_class #define FUNCTION_MODE HImode #define NO_IMPLICIT_EXTERN_C - -#define HANDLE_SYSV_PRAGMA 1 Index: gcc/config/cris/cris.h =================================================================== --- gcc/config/cris/cris.h (revision 166951) +++ gcc/config/cris/cris.h (working copy) @@ -1334,9 +1334,6 @@ enum cris_pic_symbol_type #define NO_IMPLICIT_EXTERN_C -/* No specific purpose other than warningless compatibility. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* * Local variables: * eval: (c-set-style "gnu") Index: gcc/config/netbsd.h =================================================================== --- gcc/config/netbsd.h (revision 166951) +++ gcc/config/netbsd.h (working copy) @@ -1,6 +1,6 @@ /* Base configuration file for all NetBSD targets. Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2007 Free Software Foundation, Inc. + 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -158,10 +158,6 @@ along with GCC; see the file COPYING3. #undef TARGET_POSIX_IO #define TARGET_POSIX_IO -/* Handle #pragma weak and #pragma pack. */ - -#define HANDLE_SYSV_PRAGMA 1 - /* Don't assume anything about the header files. */ #undef NO_IMPLICIT_EXTERN_C #define NO_IMPLICIT_EXTERN_C 1 @@ -224,6 +220,3 @@ __enable_execute_stack (void *addr) /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */ \ (void) mprotect (page, end - page, 7); \ } - -/* Define this so we can compile MS code for use with WINE. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 Index: gcc/config/ia64/ia64.h =================================================================== --- gcc/config/ia64/ia64.h (revision 166951) +++ gcc/config/ia64/ia64.h (working copy) @@ -1778,12 +1778,6 @@ do { \ #define FUNCTION_MODE Pmode -/* Define this macro to handle System V style pragmas: #pragma pack and - #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is - defined. */ - -#define HANDLE_SYSV_PRAGMA 1 - /* A C expression for the maximum number of instructions to execute via conditional execution instructions instead of a branch. A value of BRANCH_COST+1 is the default if the machine does not use Index: gcc/config/ia64/hpux.h =================================================================== --- gcc/config/ia64/hpux.h (revision 166951) +++ gcc/config/ia64/hpux.h (working copy) @@ -1,5 +1,5 @@ /* Definitions of target machine GNU compiler. IA-64 version. - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 Free Software Foundation, Inc. Contributed by Steve Ellcey <sje@cup.hp.com> and Reva Cuthbertson <reva@cup.hp.com> @@ -213,9 +213,6 @@ do { \ #undef NO_PROFILE_COUNTERS #define NO_PROFILE_COUNTERS 0 -#undef HANDLE_PRAGMA_PACK_PUSH_POP -#define HANDLE_PRAGMA_PACK_PUSH_POP - /* The HP-UX linker has a bug that causes calls from functions in .text.unlikely to functions in .text to cause a segfault. Until it is fixed, prevent code from being put into .text.unlikely or Index: gcc/config/rs6000/aix.h =================================================================== --- gcc/config/rs6000/aix.h (revision 166951) +++ gcc/config/rs6000/aix.h (working copy) @@ -56,9 +56,6 @@ #define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref #endif -/* Handle #pragma weak and #pragma pack. */ -#define HANDLE_SYSV_PRAGMA 1 - /* This is the only version of nm that collect2 can work with. */ #define REAL_NM_FILE_NAME "/usr/ucb/nm" Index: gcc/config/rs6000/sysv4.h =================================================================== --- gcc/config/rs6000/sysv4.h (revision 166951) +++ gcc/config/rs6000/sysv4.h (working copy) @@ -1062,18 +1062,6 @@ ncrtn.o%s" /* Function name to call to do profiling. */ #define RS6000_MCOUNT "_mcount" -/* Define this macro (to a value of 1) if you want to support the - Win32 style pragmas #pragma pack(push,<n>)' and #pragma - pack(pop)'. The pack(push,<n>) pragma specifies the maximum - alignment (in bytes) of fields within a structure, in much the - same way as the __aligned__' and __packed__' __attribute__'s - do. A pack value of zero resets the behavior to the default. - Successive invocations of this pragma cause the previous values to - be stacked, so that invocations of #pragma pack(pop)' will return - to the previous value. */ - -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* Select a format to encode pointers in exception handling data. CODE is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is true if the symbol may be affected by dynamic relocations. */ Index: gcc/config/darwin.h =================================================================== --- gcc/config/darwin.h (revision 166951) +++ gcc/config/darwin.h (working copy) @@ -869,11 +869,6 @@ enum machopic_addr_class { #undef TARGET_ASM_NAMED_SECTION #define TARGET_ASM_NAMED_SECTION darwin_asm_named_section -/* Handle pragma weak and pragma pack. */ -#define HANDLE_SYSV_PRAGMA 1 - -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - #define DARWIN_REGISTER_TARGET_PRAGMAS() \ do { \ if (!flag_preprocess_only) \ Index: gcc/config/score/elf.h =================================================================== --- gcc/config/score/elf.h (revision 166951) +++ gcc/config/score/elf.h (working copy) @@ -1,5 +1,5 @@ /* elf.h for Sunplus S+CORE processor - Copyright (C) 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -95,6 +95,3 @@ #undef ENDFILE_SPEC #define ENDFILE_SPEC "crtend%O%s crtn%O%s" - -/* We support #pragma. */ -#define HANDLE_SYSV_PRAGMA 1 Index: gcc/config/arm/arm.h =================================================================== --- gcc/config/arm/arm.h (revision 166951) +++ gcc/config/arm/arm.h (working copy) @@ -2097,9 +2097,6 @@ typedef struct #define ARM_INDEX_REGISTER_RTX_P(X) \ (GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X)) -/* Define this for compatibility reasons. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP - /* Specify the machine mode that this machine uses for the index in the tablejump instruction. */ #define CASE_VECTOR_MODE Pmode Index: gcc/config/arm/netbsd.h =================================================================== --- gcc/config/arm/netbsd.h (revision 166951) +++ gcc/config/arm/netbsd.h (working copy) @@ -1,5 +1,5 @@ /* NetBSD/arm a.out version. - Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008 + Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008, 2010 Free Software Foundation, Inc. Contributed by Mark Brinicombe (amb@physig.ph.kcl.ac.uk) @@ -71,8 +71,6 @@ #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "int" -#define HANDLE_SYSV_PRAGMA 1 - /* We don't have any limit on the length as out debugger is GDB. */ #undef DBX_CONTIN_LENGTH Index: gcc/config/pa/pa-hpux.h =================================================================== --- gcc/config/pa/pa-hpux.h (revision 166951) +++ gcc/config/pa/pa-hpux.h (working copy) @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler, for HP-UX. - Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008 + Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -114,12 +114,4 @@ along with GCC; see the file COPYING3. #undef TARGET_HPUX_UNWIND_LIBRARY #define TARGET_HPUX_UNWIND_LIBRARY 1 -/* Handle #pragma weak and #pragma pack. */ -#undef HANDLE_SYSV_PRAGMA -#define HANDLE_SYSV_PRAGMA - -/* Define this so we can compile MS code for use with WINE. */ -#undef HANDLE_PRAGMA_PACK_PUSH_POP -#define HANDLE_PRAGMA_PACK_PUSH_POP - #define MD_UNWIND_SUPPORT "config/pa/hpux-unwind.h" Index: gcc/config/mips/elf.h =================================================================== --- gcc/config/mips/elf.h (revision 166951) +++ gcc/config/mips/elf.h (working copy) @@ -1,5 +1,5 @@ /* Target macros for mips*-elf targets. - Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007 + Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -49,5 +49,3 @@ along with GCC; see the file COPYING3. #define ENDFILE_SPEC "crtend%O%s crtn%O%s" #define NO_IMPLICIT_EXTERN_C 1 - -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 Index: gcc/config/mips/sde.h =================================================================== --- gcc/config/mips/sde.h (revision 166951) +++ gcc/config/mips/sde.h (working copy) @@ -94,9 +94,6 @@ along with GCC; see the file COPYING3. #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "long int" -/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /* Use standard ELF-style local labels (not '$' as on early Irix). */ #undef LOCAL_LABEL_PREFIX #define LOCAL_LABEL_PREFIX "." Index: gcc/config/openbsd.h =================================================================== --- gcc/config/openbsd.h (revision 166951) +++ gcc/config/openbsd.h (working copy) @@ -282,12 +282,6 @@ do { \ /* Storage layout. */ -/* bug work around: we don't want to support #pragma weak, but the current - code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to - work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly, - as this depends on a few other details as well... */ -#define HANDLE_SYSV_PRAGMA 1 - /* Stack is explicitly denied execution rights on OpenBSD platforms. */ #define ENABLE_EXECUTE_STACK \ extern void __enable_execute_stack (void *); \ Index: gcc/config/freebsd.h =================================================================== --- gcc/config/freebsd.h (revision 166951) +++ gcc/config/freebsd.h (working copy) @@ -45,9 +45,6 @@ along with GCC; see the file COPYING3. #undef LIB_SPEC #define LIB_SPEC FBSD_LIB_SPEC -/* Define this so we can compile MS code for use with WINE. */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - /************************[ Target stuff ]***********************************/ /* All FreeBSD Architectures support the ELF object file format. */ Index: gcc/config/mmix/mmix.h =================================================================== --- gcc/config/mmix/mmix.h (revision 166951) +++ gcc/config/mmix/mmix.h (working copy) @@ -887,8 +887,6 @@ typedef struct { int regs; int lib; } CU #define NO_IMPLICIT_EXTERN_C -#define HANDLE_SYSV_PRAGMA 1 - /* These are checked. */ #define DOLLARS_IN_IDENTIFIERS 0 #define NO_DOLLAR_IN_LABEL