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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166992
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
+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
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()
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)
case pop: pop_alignment (id); break;
}
}
-#endif /* HANDLE_PRAGMA_PACK */
typedef struct GTY(()) pending_weak_d
{
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 *);
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
}
-#ifdef HANDLE_PRAGMA_VISIBILITY
static void handle_pragma_visibility (cpp_reader *);
static VEC (int, heap) *visstack;
warning (OPT_Wpragmas, "junk at end of %<#pragma GCC visibility%>");
}
-#endif
-
static void
handle_pragma_diagnostic(cpp_reader *ARG_UNUSED(dummy))
{
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);
/* 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.
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);
"%{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.
/* 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.
#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
#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
#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. */
#define ARM_INDEX_REGISTER_RTX_P(X) \
(GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
\f
-/* 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
/* 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)
#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
#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")
#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) \
#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
#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. */
`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
#undef LONG_TYPE_SIZE
#define LONG_TYPE_SIZE 32
\f
-/* 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 *
\f
/* 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
/* 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).
#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
/* 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)
#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
/* 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.
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)");
/* 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>
#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
#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
#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
#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}"
/* 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.
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)");
- longlong.h?
*/
-#undef HANDLE_SYSV_PRAGMA
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
#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.
/* 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.
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
#define NO_IMPLICIT_EXTERN_C 1
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
#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 "."
#define NO_IMPLICIT_EXTERN_C
-#define HANDLE_SYSV_PRAGMA 1
-
/* These are checked. */
#define DOLLARS_IN_IDENTIFIERS 0
#define NO_DOLLAR_IN_LABEL
/* 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.
#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
/* 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
/* Storage layout. */
\f
-/* 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 *); \
/* 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.
#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"
#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"
/* 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. */
#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
/* 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.
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
-
-/* We support #pragma. */
-#define HANDLE_SYSV_PRAGMA 1
#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 { \
#define FUNCTION_MODE HImode
#define NO_IMPLICIT_EXTERN_C
-
-#define HANDLE_SYSV_PRAGMA 1
/* 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.
"GCC", PREFIX_PRIORITY_LAST, 0, 0); \
} \
while (0)
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
+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
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;
saw_vis = true;
}
else
-#endif
{
warning (OPT_Wattributes, "%qD attribute directive ignored",
name);
/* 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 ();
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
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
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 \
+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.
// 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)")
/* 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)")
/* 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
/* 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" } */
-/* 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);
/* PR c/28286 */
/* { dg-do compile } */
-/* { dg-skip-if "no Pragma pack" { "avr-*-*" } { "*" } { "" } } */
#pragma pack(0.5) /* { dg-warning "invalid constant" } */
/* 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)