mirror of git://gcc.gnu.org/git/gcc.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
This commit is contained in:
parent
7ea8e3f2f7
commit
24a57808c1
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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) \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 *
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)");
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}"
|
||||
|
|
|
@ -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)");
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
- longlong.h?
|
||||
*/
|
||||
|
||||
#undef HANDLE_SYSV_PRAGMA
|
||||
#undef SIZE_TYPE
|
||||
#undef PTRDIFF_TYPE
|
||||
#undef WCHAR_TYPE
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 "."
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 *); \
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 { \
|
||||
|
|
|
@ -587,5 +587,3 @@ enum reg_class
|
|||
#define FUNCTION_MODE HImode
|
||||
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
#define HANDLE_SYSV_PRAGMA 1
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)")
|
||||
|
|
|
@ -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)")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" } */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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" } */
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue