From: Joseph Myers Date: Sun, 21 Nov 2010 00:54:14 +0000 (+0000) Subject: tm.texi.in (HANDLE_SYSV_PRAGMA, [...]): Remove. X-Git-Tag: upstream/12.2.0~88292 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=24a57808c19e8177372e1b6076fa24684e62d192;p=platform%2Fupstream%2Fgcc.git tm.texi.in (HANDLE_SYSV_PRAGMA, [...]): Remove. * 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: * 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: * 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: * 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. From-SVN: r166992 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e12260..684e920 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,59 @@ +2010-11-20 Joseph Myers + + * 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. + 2010-11-20 Eric Botcazou PR target/31100 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index f10fde7..86e75ce 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,12 @@ +2010-11-20 Joseph Myers + + * 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. + 2010-11-20 Nathan Froyd PR c++/16189 diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c index 9c00983..2250bef 100644 --- a/gcc/c-family/c-pragma.c +++ b/gcc/c-family/c-pragma.c @@ -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() in effect when the first #pragma pack(push,) 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], ) is not supported on this target") -#define pop_alignment(ID) \ - GCC_BAD ("#pragma pack(pop[, id], ) 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_UNUSED (dummy)) 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_UNUSED (dummy)) 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, tree asmname) } -#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 *dummy ATTRIBUTE_UNUSED) 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); diff --git a/gcc/c-family/c-pragma.h b/gcc/c-family/c-pragma.h index eab23db..1c29ec4 100644 --- a/gcc/c-family/c-pragma.h +++ b/gcc/c-family/c-pragma.h @@ -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() */ -#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); diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 78b2858..78cafed 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -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. diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h index 712d66d..86b6594 100644 --- a/gcc/config/alpha/linux.h +++ b/gcc/config/alpha/linux.h @@ -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. If not see #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 diff --git a/gcc/config/alpha/osf5.h b/gcc/config/alpha/osf5.h index 4f639e2..84a3c24 100644 --- a/gcc/config/alpha/osf5.h +++ b/gcc/config/alpha/osf5.h @@ -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 diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h index 2c151a7..9985b67 100644 --- a/gcc/config/alpha/vms.h +++ b/gcc/config/alpha/vms.h @@ -69,8 +69,6 @@ along with GCC; see the file COPYING3. If not see #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. */ diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 483b222..b7df323 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -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 diff --git a/gcc/config/arm/netbsd.h b/gcc/config/arm/netbsd.h index 4b8de79..4a1adba 100644 --- a/gcc/config/arm/netbsd.h +++ b/gcc/config/arm/netbsd.h @@ -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 diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h index 943b002..4049a6b 100644 --- a/gcc/config/cris/cris.h +++ b/gcc/config/cris/cris.h @@ -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") diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index c80c261..086e428 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -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) \ diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h index 8c415ba..e483216 100644 --- a/gcc/config/elfos.h +++ b/gcc/config/elfos.h @@ -65,10 +65,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #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 diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h index 1a7dac9..51caad2 100644 --- a/gcc/config/freebsd.h +++ b/gcc/config/freebsd.h @@ -45,9 +45,6 @@ along with GCC; see the file COPYING3. If not see #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. */ diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h index b498c61..49cee4c 100644 --- a/gcc/config/frv/frv.h +++ b/gcc/config/frv/frv.h @@ -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 diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h index 4ee2a04..28c3082 100644 --- a/gcc/config/i386/cygming.h +++ b/gcc/config/i386/cygming.h @@ -178,9 +178,6 @@ along with GCC; see the file COPYING3. If not see #undef LONG_TYPE_SIZE #define LONG_TYPE_SIZE 32 -/* Enable parsing of #pragma pack(push,) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 - union tree_node; #define TREE union tree_node * diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h index 2a8cef6..de355c4 100644 --- a/gcc/config/i386/djgpp.h +++ b/gcc/config/i386/djgpp.h @@ -24,11 +24,6 @@ along with GCC; see the file COPYING3. If not see /* Don't assume anything about the header files. */ #define NO_IMPLICIT_EXTERN_C -#define HANDLE_SYSV_PRAGMA 1 - -/* Enable parsing of #pragma pack(push,) 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 diff --git a/gcc/config/i386/i386-interix.h b/gcc/config/i386/i386-interix.h index c92e42e..a2f579a 100644 --- a/gcc/config/i386/i386-interix.h +++ b/gcc/config/i386/i386-interix.h @@ -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. If not see #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 diff --git a/gcc/config/i386/netware.h b/gcc/config/i386/netware.h index 6b423e3..7f90e1d 100644 --- a/gcc/config/i386/netware.h +++ b/gcc/config/i386/netware.h @@ -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,) and #pragma pack(pop). */ -#define HANDLE_PRAGMA_PACK_PUSH_POP - /* Default structure packing is 1-byte. */ #define TARGET_DEFAULT_PACK_STRUCT 1 diff --git a/gcc/config/i386/vxworks.h b/gcc/config/i386/vxworks.h index fe56300..f7f9298 100644 --- a/gcc/config/i386/vxworks.h +++ b/gcc/config/i386/vxworks.h @@ -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 GNU General Public License along with GCC; see the file COPYING3. If not see . */ -#define HANDLE_SYSV_PRAGMA 1 - #undef TARGET_VERSION #define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)"); diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h index c0dae0a..b422441 100644 --- a/gcc/config/ia64/hpux.h +++ b/gcc/config/ia64/hpux.h @@ -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 and Reva Cuthbertson @@ -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 diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index e270558..0b512f2 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -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 diff --git a/gcc/config/interix.h b/gcc/config/interix.h index 658c534..aa38712 100644 --- a/gcc/config/interix.h +++ b/gcc/config/interix.h @@ -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 diff --git a/gcc/config/linux.h b/gcc/config/linux.h index 7c0ca95..4f3b4b8 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -102,9 +102,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #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}" diff --git a/gcc/config/m32r/linux.h b/gcc/config/m32r/linux.h index 0515e5b..9856e81 100644 --- a/gcc/config/m32r/linux.h +++ b/gcc/config/m32r/linux.h @@ -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)"); diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h index d24cda6..72e3dc9 100644 --- a/gcc/config/m32r/m32r.h +++ b/gcc/config/m32r/m32r.h @@ -22,7 +22,6 @@ - longlong.h? */ -#undef HANDLE_SYSV_PRAGMA #undef SIZE_TYPE #undef PTRDIFF_TYPE #undef WCHAR_TYPE diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h index 48d05b6..9a7b285 100644 --- a/gcc/config/mep/mep.h +++ b/gcc/config/mep/mep.h @@ -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. diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h index 8967b3d..5725537 100644 --- a/gcc/config/mips/elf.h +++ b/gcc/config/mips/elf.h @@ -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. If not see #define ENDFILE_SPEC "crtend%O%s crtn%O%s" #define NO_IMPLICIT_EXTERN_C 1 - -#define HANDLE_PRAGMA_PACK_PUSH_POP 1 diff --git a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h index 29eaccc..dfa40b9 100644 --- a/gcc/config/mips/sde.h +++ b/gcc/config/mips/sde.h @@ -94,9 +94,6 @@ along with GCC; see the file COPYING3. If not see #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "long int" -/* Enable parsing of #pragma pack(push,) 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 "." diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h index 251c88b9..1d8665b 100644 --- a/gcc/config/mmix/mmix.h +++ b/gcc/config/mmix/mmix.h @@ -887,8 +887,6 @@ typedef struct { int regs; int lib; } CUMULATIVE_ARGS; #define NO_IMPLICIT_EXTERN_C -#define HANDLE_SYSV_PRAGMA 1 - /* These are checked. */ #define DOLLARS_IN_IDENTIFIERS 0 #define NO_DOLLAR_IN_LABEL diff --git a/gcc/config/netbsd.h b/gcc/config/netbsd.h index 4f82809..ddf6567 100644 --- a/gcc/config/netbsd.h +++ b/gcc/config/netbsd.h @@ -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. If not see #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 diff --git a/gcc/config/openbsd.h b/gcc/config/openbsd.h index d15dff1..b1076a7 100644 --- a/gcc/config/openbsd.h +++ b/gcc/config/openbsd.h @@ -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 *); \ diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h index b600b0e..69a9d19 100644 --- a/gcc/config/pa/pa-hpux.h +++ b/gcc/config/pa/pa-hpux.h @@ -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. If not see #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" diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 9d5a380..7f60d32 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -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" diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index d557ce1..ae27682 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -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,)' and #pragma - pack(pop)'. The pack(push,) 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. */ diff --git a/gcc/config/rx/rx.h b/gcc/config/rx/rx.h index 9eb25e8..233fac2 100644 --- a/gcc/config/rx/rx.h +++ b/gcc/config/rx/rx.h @@ -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 diff --git a/gcc/config/score/elf.h b/gcc/config/score/elf.h index d04373e..30fc7f0 100644 --- a/gcc/config/score/elf.h +++ b/gcc/config/score/elf.h @@ -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 diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h index 98d2f24..b5e054b 100644 --- a/gcc/config/spu/spu.h +++ b/gcc/config/spu/spu.h @@ -512,8 +512,6 @@ targetm.resolve_overloaded_builtin = spu_resolve_overloaded_builtin; \ #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 { \ diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index 1ac73c4..1781bc3 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -587,5 +587,3 @@ enum reg_class #define FUNCTION_MODE HImode #define NO_IMPLICIT_EXTERN_C - -#define HANDLE_SYSV_PRAGMA 1 diff --git a/gcc/config/xtensa/elf.h b/gcc/config/xtensa/elf.h index f0d1805..90b1c71 100644 --- a/gcc/config/xtensa/elf.h +++ b/gcc/config/xtensa/elf.h @@ -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 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8d3b777..6daf31b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2010-11-20 Joseph Myers + + * name-lookup.c (handle_namespace_attrs): Don't check + HANDLE_PRAGMA_VISIBILITY. + * parser.c (cp_parser_namespace_definition): Don't check + HANDLE_PRAGMA_VISIBILITY. + 2010-11-20 Nathan Froyd PR c++/16189 diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 5fe60f9..dc73544 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -3239,7 +3239,6 @@ handle_namespace_attrs (tree ns, tree attributes) 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 attributes) saw_vis = true; } else -#endif { warning (OPT_Wattributes, "%qD attribute directive ignored", name); diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 14961ce..3ed0579 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -13838,10 +13838,8 @@ cp_parser_namespace_definition (cp_parser* parser) /* 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 (); diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 1639e94..58d5bbd 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -10666,55 +10666,8 @@ rule to the makefile fragment pointed to by @code{tmake_file} that shows 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()} and @samp{#pragma weak -[=]} 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 diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 502145e..d9fed9b 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -10628,55 +10628,8 @@ rule to the makefile fragment pointed to by @code{tmake_file} that shows 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()} and @samp{#pragma weak -[=]} 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 diff --git a/gcc/system.h b/gcc/system.h index a4f1da6..42332b3 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -777,7 +777,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; 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 \ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1d6a14a..87e7ab5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2010-11-20 Joseph Myers + + * 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. + 2010-11-20 Eric Botcazou * gcc.target/sparc/sparc-align-1.c: New test. diff --git a/gcc/testsuite/g++.dg/cpp/_Pragma1.C b/gcc/testsuite/g++.dg/cpp/_Pragma1.C index 2ca13ef..2a4086b 100644 --- a/gcc/testsuite/g++.dg/cpp/_Pragma1.C +++ b/gcc/testsuite/g++.dg/cpp/_Pragma1.C @@ -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)") diff --git a/gcc/testsuite/gcc.dg/cpp/_Pragma6.c b/gcc/testsuite/gcc.dg/cpp/_Pragma6.c index dfdaf79..7f3f776 100644 --- a/gcc/testsuite/gcc.dg/cpp/_Pragma6.c +++ b/gcc/testsuite/gcc.dg/cpp/_Pragma6.c @@ -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)") diff --git a/gcc/testsuite/gcc.dg/pack-test-1.c b/gcc/testsuite/gcc.dg/pack-test-1.c index 8bd3f6c..e019e78 100644 --- a/gcc/testsuite/gcc.dg/pack-test-1.c +++ b/gcc/testsuite/gcc.dg/pack-test-1.c @@ -1,7 +1,7 @@ /* Test semantics of #pragma pack. Contributed by Mike Coleman */ -/* { 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 diff --git a/gcc/testsuite/gcc.dg/pack-test-2.c b/gcc/testsuite/gcc.dg/pack-test-2.c index 86e4d8d..5c2f6ae 100644 --- a/gcc/testsuite/gcc.dg/pack-test-2.c +++ b/gcc/testsuite/gcc.dg/pack-test-2.c @@ -1,7 +1,7 @@ /* Tests for syntax checking of #pragma pack. Contributed by Mike Coleman */ -/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */ +/* { dg-do compile } */ #pragma pack(pop) /* { dg-warning "without matching" } */ diff --git a/gcc/testsuite/gcc.dg/pragma-align.c b/gcc/testsuite/gcc.dg/pragma-align.c index c1b4ded..3569a1f 100644 --- a/gcc/testsuite/gcc.dg/pragma-align.c +++ b/gcc/testsuite/gcc.dg/pragma-align.c @@ -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); diff --git a/gcc/testsuite/gcc.dg/pragma-pack-4.c b/gcc/testsuite/gcc.dg/pragma-pack-4.c index 05a24e5..c2ea59e 100644 --- a/gcc/testsuite/gcc.dg/pragma-pack-4.c +++ b/gcc/testsuite/gcc.dg/pragma-pack-4.c @@ -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" } */ diff --git a/gcc/testsuite/gcc.dg/ucnid-10.c b/gcc/testsuite/gcc.dg/ucnid-10.c index 3914810..bbcde1f 100644 --- a/gcc/testsuite/gcc.dg/ucnid-10.c +++ b/gcc/testsuite/gcc.dg/ucnid-10.c @@ -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)