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
This commit is contained in:
Joseph Myers 2010-11-21 00:54:14 +00:00 committed by Joseph Myers
parent 7ea8e3f2f7
commit 24a57808c1
54 changed files with 111 additions and 306 deletions

View File

@ -1,3 +1,59 @@
2010-11-20 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.
2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
PR target/31100

View File

@ -1,3 +1,12 @@
2010-11-20 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.
2010-11-20 Nathan Froyd <froydnj@codesourcery.com>
PR c++/16189

View File

@ -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_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);

View File

@ -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);

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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) \

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -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,<n>) and #pragma pack(pop). */
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
union tree_node;
#define TREE union tree_node *

View File

@ -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,<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

View File

@ -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

View File

@ -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

View File

@ -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
<http://www.gnu.org/licenses/>. */
#define HANDLE_SYSV_PRAGMA 1
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)");

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}"

View File

@ -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)");

View File

@ -22,7 +22,6 @@
- longlong.h?
*/
#undef HANDLE_SYSV_PRAGMA
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE

View File

@ -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.

View File

@ -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

View File

@ -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,<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 "."

View File

@ -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

View File

@ -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

View File

@ -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 *); \

View File

@ -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"

View File

@ -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"

View File

@ -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. */

View File

@ -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

View File

@ -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

View File

@ -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 { \

View File

@ -587,5 +587,3 @@ enum reg_class
#define FUNCTION_MODE HImode
#define NO_IMPLICIT_EXTERN_C
#define HANDLE_SYSV_PRAGMA 1

View File

@ -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

View File

@ -1,3 +1,10 @@
2010-11-20 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.
2010-11-20 Nathan Froyd <froydnj@codesourcery.com>
PR c++/16189

View File

@ -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);

View File

@ -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 ();

View File

@ -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(<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

View File

@ -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(<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

View File

@ -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 \

View File

@ -1,3 +1,13 @@
2010-11-20 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.
2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
* gcc.target/sparc/sparc-align-1.c: New test.

View File

@ -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)")

View File

@ -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)")

View File

@ -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

View File

@ -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" } */

View File

@ -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);

View File

@ -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" } */

View File

@ -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)