summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog56
-rw-r--r--gcc/c-family/ChangeLog9
-rw-r--r--gcc/c-family/c-pragma.c31
-rw-r--r--gcc/c-family/c-pragma.h19
-rw-r--r--gcc/config/alpha/elf.h3
-rw-r--r--gcc/config/alpha/linux.h7
-rw-r--r--gcc/config/alpha/osf5.h3
-rw-r--r--gcc/config/alpha/vms.h2
-rw-r--r--gcc/config/arm/arm.h3
-rw-r--r--gcc/config/arm/netbsd.h4
-rw-r--r--gcc/config/cris/cris.h3
-rw-r--r--gcc/config/darwin.h5
-rw-r--r--gcc/config/elfos.h4
-rw-r--r--gcc/config/freebsd.h3
-rw-r--r--gcc/config/frv/frv.h7
-rw-r--r--gcc/config/i386/cygming.h3
-rw-r--r--gcc/config/i386/djgpp.h5
-rw-r--r--gcc/config/i386/i386-interix.h7
-rw-r--r--gcc/config/i386/netware.h6
-rw-r--r--gcc/config/i386/vxworks.h4
-rw-r--r--gcc/config/ia64/hpux.h5
-rw-r--r--gcc/config/ia64/ia64.h6
-rw-r--r--gcc/config/interix.h3
-rw-r--r--gcc/config/linux.h3
-rw-r--r--gcc/config/m32r/linux.h6
-rw-r--r--gcc/config/m32r/m32r.h1
-rw-r--r--gcc/config/mep/mep.h2
-rw-r--r--gcc/config/mips/elf.h4
-rw-r--r--gcc/config/mips/sde.h3
-rw-r--r--gcc/config/mmix/mmix.h2
-rw-r--r--gcc/config/netbsd.h9
-rw-r--r--gcc/config/openbsd.h6
-rw-r--r--gcc/config/pa/pa-hpux.h10
-rw-r--r--gcc/config/rs6000/aix.h3
-rw-r--r--gcc/config/rs6000/sysv4.h12
-rw-r--r--gcc/config/rx/rx.h2
-rw-r--r--gcc/config/score/elf.h5
-rw-r--r--gcc/config/spu/spu.h2
-rw-r--r--gcc/config/stormy16/stormy16.h2
-rw-r--r--gcc/config/xtensa/elf.h4
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/name-lookup.c2
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/doc/tm.texi49
-rw-r--r--gcc/doc/tm.texi.in49
-rw-r--r--gcc/system.h3
-rw-r--r--gcc/testsuite/ChangeLog10
-rw-r--r--gcc/testsuite/g++.dg/cpp/_Pragma1.C5
-rw-r--r--gcc/testsuite/gcc.dg/cpp/_Pragma6.c5
-rw-r--r--gcc/testsuite/gcc.dg/pack-test-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pack-test-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pragma-align.c4
-rw-r--r--gcc/testsuite/gcc.dg/pragma-pack-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/ucnid-10.c2
54 files changed, 111 insertions, 306 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e122603a5d..684e920cdd1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index f10fde75fac..86e75ce84c9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -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
diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c
index 9c00983596f..2250bef9fc0 100644
--- a/gcc/c-family/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -54,10 +54,8 @@ typedef struct GTY(()) align_stack {
static GTY(()) struct align_stack * alignment_stack;
-#ifdef HANDLE_PRAGMA_PACK
static void handle_pragma_pack (cpp_reader *);
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
/* If we have a "global" #pragma pack(<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);
diff --git a/gcc/c-family/c-pragma.h b/gcc/c-family/c-pragma.h
index eab23db6cd9..1c29ec455eb 100644
--- a/gcc/c-family/c-pragma.h
+++ b/gcc/c-family/c-pragma.h
@@ -1,6 +1,6 @@
/* Pragma related interfaces.
Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2007, 2008 Free Software Foundation, Inc.
+ 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GCC.
@@ -75,26 +75,9 @@ typedef enum pragma_omp_clause {
extern struct cpp_reader* parse_in;
-#define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK
-
-#ifdef HANDLE_SYSV_PRAGMA
-/* We always support #pragma pack for SYSV pragmas. */
-#ifndef HANDLE_PRAGMA_PACK
-#define HANDLE_PRAGMA_PACK 1
-#endif
-#endif /* HANDLE_SYSV_PRAGMA */
-
-
-#ifdef HANDLE_PRAGMA_PACK_PUSH_POP
-/* If we are supporting #pragma pack(push... then we automatically
- support #pragma pack(<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);
diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h
index 78b2858db56..78cafedb970 100644
--- a/gcc/config/alpha/elf.h
+++ b/gcc/config/alpha/elf.h
@@ -400,9 +400,6 @@ do { \
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
-/* We support #pragma. */
-#define HANDLE_SYSV_PRAGMA 1
-
/* Select a format to encode pointers in exception handling data. CODE
is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
true if the symbol may be affected by dynamic relocations.
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index 712d66d8656..86b6594f45b 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -1,7 +1,7 @@
/* Definitions of target machine for GNU compiler,
for Alpha Linux-based GNU systems.
- Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
+ 2010 Free Software Foundation, Inc.
Contributed by Richard Henderson.
This file is part of GCC.
@@ -61,9 +61,6 @@ along with GCC; see the file COPYING3. If not see
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
-/* Define this so that all GNU/Linux targets handle the same pragmas. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
/* Determine whether the entire c99 runtime is present in the
diff --git a/gcc/config/alpha/osf5.h b/gcc/config/alpha/osf5.h
index 4f639e2137b..84a3c248eca 100644
--- a/gcc/config/alpha/osf5.h
+++ b/gcc/config/alpha/osf5.h
@@ -268,9 +268,6 @@ __enable_execute_stack (void *addr) \
#define TARGET_ASM_OPEN_PAREN ""
#define TARGET_ASM_CLOSE_PAREN ""
-/* Handle #pragma weak and #pragma pack. */
-#define HANDLE_SYSV_PRAGMA 1
-
/* Handle #pragma extern_prefix. */
#define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX 1
diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h
index 2c151a7e816..9985b67728e 100644
--- a/gcc/config/alpha/vms.h
+++ b/gcc/config/alpha/vms.h
@@ -69,8 +69,6 @@ along with GCC; see the file COPYING3. If not see
#define POINTER_SIZE 32
#define POINTERS_EXTEND_UNSIGNED 0
-#define HANDLE_SYSV_PRAGMA 1
-
#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */
/* The maximum alignment 'malloc' honors. */
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 483b2228e54..b7df3239fb5 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2097,9 +2097,6 @@ typedef struct
#define ARM_INDEX_REGISTER_RTX_P(X) \
(GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
-/* Define this for compatibility reasons. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */
#define CASE_VECTOR_MODE Pmode
diff --git a/gcc/config/arm/netbsd.h b/gcc/config/arm/netbsd.h
index 4b8de79a4d4..4a1adbae991 100644
--- a/gcc/config/arm/netbsd.h
+++ b/gcc/config/arm/netbsd.h
@@ -1,5 +1,5 @@
/* NetBSD/arm a.out version.
- Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008
+ Copyright (C) 1993, 1994, 1997, 1998, 2003, 2004, 2005, 2007, 2008, 2010
Free Software Foundation, Inc.
Contributed by Mark Brinicombe (amb@physig.ph.kcl.ac.uk)
@@ -71,8 +71,6 @@
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
-#define HANDLE_SYSV_PRAGMA 1
-
/* We don't have any limit on the length as out debugger is GDB. */
#undef DBX_CONTIN_LENGTH
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 943b0021608..4049a6b4663 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -1334,9 +1334,6 @@ enum cris_pic_symbol_type
#define NO_IMPLICIT_EXTERN_C
-/* No specific purpose other than warningless compatibility. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
/*
* Local variables:
* eval: (c-set-style "gnu")
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index c80c2614e64..086e428f2d4 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -869,11 +869,6 @@ enum machopic_addr_class {
#undef TARGET_ASM_NAMED_SECTION
#define TARGET_ASM_NAMED_SECTION darwin_asm_named_section
-/* Handle pragma weak and pragma pack. */
-#define HANDLE_SYSV_PRAGMA 1
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
#define DARWIN_REGISTER_TARGET_PRAGMAS() \
do { \
if (!flag_preprocess_only) \
diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 8c415bad442..e483216ef7f 100644
--- a/gcc/config/elfos.h
+++ b/gcc/config/elfos.h
@@ -65,10 +65,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define PCC_BITFIELD_TYPE_MATTERS 1
#endif
-/* Handle #pragma weak and #pragma pack. */
-
-#define HANDLE_SYSV_PRAGMA 1
-
/* All ELF targets can support DWARF-2. */
#define DWARF2_DEBUGGING_INFO 1
diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h
index 1a7dac9630d..51caad294be 100644
--- a/gcc/config/freebsd.h
+++ b/gcc/config/freebsd.h
@@ -45,9 +45,6 @@ along with GCC; see the file COPYING3. If not see
#undef LIB_SPEC
#define LIB_SPEC FBSD_LIB_SPEC
-/* Define this so we can compile MS code for use with WINE. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
/************************[ Target stuff ]***********************************/
/* All FreeBSD Architectures support the ELF object file format. */
diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h
index b498c614ce5..49cee4cf334 100644
--- a/gcc/config/frv/frv.h
+++ b/gcc/config/frv/frv.h
@@ -2306,13 +2306,6 @@ fprintf (STREAM, "\t.word .L%d\n", VALUE)
`QImode'. */
#define FUNCTION_MODE QImode
-/* Define this macro to handle System V style pragmas: #pragma pack and
- #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is
- defined.
-
- Defined in svr4.h. */
-#define HANDLE_SYSV_PRAGMA 1
-
/* A C expression for the maximum number of instructions to execute via
conditional execution instructions instead of a branch. A value of
BRANCH_COST+1 is the default if the machine does not use
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index 4ee2a04349e..28c3082bd59 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -178,9 +178,6 @@ along with GCC; see the file COPYING3. If not see
#undef LONG_TYPE_SIZE
#define LONG_TYPE_SIZE 32
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
union tree_node;
#define TREE union tree_node *
diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h
index 2a8cef6842b..de355c4709d 100644
--- a/gcc/config/i386/djgpp.h
+++ b/gcc/config/i386/djgpp.h
@@ -24,11 +24,6 @@ along with GCC; see the file COPYING3. If not see
/* Don't assume anything about the header files. */
#define NO_IMPLICIT_EXTERN_C
-#define HANDLE_SYSV_PRAGMA 1
-
-/* Enable parsing of #pragma pack(push,<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
diff --git a/gcc/config/i386/i386-interix.h b/gcc/config/i386/i386-interix.h
index c92e42e9292..a2f579a1c44 100644
--- a/gcc/config/i386/i386-interix.h
+++ b/gcc/config/i386/i386-interix.h
@@ -1,6 +1,6 @@
/* Target definitions for GCC for Intel 80386 running Interix
- Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008
- Free Software Foundation, Inc.
+ Parts Copyright (C) 1991, 1999, 2000, 2002, 2003, 2004, 2007, 2008, 2009,
+ 2010 Free Software Foundation, Inc.
Parts:
by Douglas B. Rupp (drupp@cs.washington.edu).
@@ -30,9 +30,6 @@ along with GCC; see the file COPYING3. If not see
#define SDB_DEBUGGING_INFO 1
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-#define HANDLE_SYSV_PRAGMA 1
-#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */
-
/* By default, target has a 80387, uses IEEE compatible arithmetic,
and returns float values in the 387 and needs stack probes
We also align doubles to 64-bits for MSVC default compatibility
diff --git a/gcc/config/i386/netware.h b/gcc/config/i386/netware.h
index 6b423e36fc1..7f90e1dd814 100644
--- a/gcc/config/i386/netware.h
+++ b/gcc/config/i386/netware.h
@@ -1,6 +1,7 @@
/* Core target definitions for GCC for Intel 80x86 running Netware.
and using dwarf for the debugging format.
- Copyright (C) 1993, 1994, 2004, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2004, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
Written by David V. Henkel-Wallace (gumby@cygnus.com)
@@ -104,9 +105,6 @@ do { \
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n])
-/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
/* Default structure packing is 1-byte. */
#define TARGET_DEFAULT_PACK_STRUCT 1
diff --git a/gcc/config/i386/vxworks.h b/gcc/config/i386/vxworks.h
index fe563000489..f7f92985016 100644
--- a/gcc/config/i386/vxworks.h
+++ b/gcc/config/i386/vxworks.h
@@ -1,5 +1,5 @@
/* IA32 VxWorks target definitions for GNU compiler.
- Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc.
Updated by CodeSourcery, LLC.
This file is part of GCC.
@@ -18,8 +18,6 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#define HANDLE_SYSV_PRAGMA 1
-
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (80586, VxWorks syntax)");
diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h
index c0dae0ae9ea..b422441d343 100644
--- a/gcc/config/ia64/hpux.h
+++ b/gcc/config/ia64/hpux.h
@@ -1,5 +1,5 @@
/* Definitions of target machine GNU compiler. IA-64 version.
- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010
Free Software Foundation, Inc.
Contributed by Steve Ellcey <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
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index e2705589b81..0b512f25cc8 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -1778,12 +1778,6 @@ do { \
#define FUNCTION_MODE Pmode
-/* Define this macro to handle System V style pragmas: #pragma pack and
- #pragma weak. Note, #pragma weak will only be supported if SUPPORT_WEAK is
- defined. */
-
-#define HANDLE_SYSV_PRAGMA 1
-
/* A C expression for the maximum number of instructions to execute via
conditional execution instructions instead of a branch. A value of
BRANCH_COST+1 is the default if the machine does not use
diff --git a/gcc/config/interix.h b/gcc/config/interix.h
index 658c534277a..aa3871214e8 100644
--- a/gcc/config/interix.h
+++ b/gcc/config/interix.h
@@ -61,9 +61,6 @@ for windows/multi thread */
#define STDC_0_IN_SYSTEM_HEADERS 1
-#define HANDLE_SYSV_PRAGMA 1
-#undef HANDLE_PRAGMA_WEAK /* until the link format can handle it */
-
/* Names to predefine in the preprocessor for this target machine. */
#define DBX_DEBUGGING_INFO 1
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index 7c0ca95db42..4f3b4b8681a 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -102,9 +102,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif
-/* Define this so we can compile MS code for use with WINE. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
#undef LINK_GCC_C_SEQUENCE_SPEC
#define LINK_GCC_C_SEQUENCE_SPEC \
"%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
diff --git a/gcc/config/m32r/linux.h b/gcc/config/m32r/linux.h
index 0515e5b3b44..9856e81fa26 100644
--- a/gcc/config/m32r/linux.h
+++ b/gcc/config/m32r/linux.h
@@ -1,5 +1,5 @@
/* Definitions for Renesas M32R running Linux-based GNU systems using ELF.
- Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2006, 2007, 2010 Free Software Foundation, Inc.
This file is part of GCC.
@@ -23,10 +23,6 @@
supposed to be outputting something that will assemble under SVr4.
This gets us pretty close. */
-#define HANDLE_SYSV_PRAGMA
-
-#undef HANDLE_PRAGMA_PACK
-
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (M32R GNU/Linux with ELF)");
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index d24cda6e82c..72e3dc9798b 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -22,7 +22,6 @@
- longlong.h?
*/
-#undef HANDLE_SYSV_PRAGMA
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
diff --git a/gcc/config/mep/mep.h b/gcc/config/mep/mep.h
index 48d05b68d81..9a7b285cb88 100644
--- a/gcc/config/mep/mep.h
+++ b/gcc/config/mep/mep.h
@@ -804,8 +804,6 @@ typedef struct
#define REGISTER_TARGET_PRAGMAS() mep_register_pragmas ()
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
/* If defined, a C expression to determine the base term of address X.
This macro is used in only one place: `find_base_term' in alias.c.
diff --git a/gcc/config/mips/elf.h b/gcc/config/mips/elf.h
index 8967b3d1715..572553742f4 100644
--- a/gcc/config/mips/elf.h
+++ b/gcc/config/mips/elf.h
@@ -1,5 +1,5 @@
/* Target macros for mips*-elf targets.
- Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007
+ Copyright (C) 1994, 1997, 1999, 2000, 2002, 2003, 2004, 2007, 2010
Free Software Foundation, Inc.
This file is part of GCC.
@@ -49,5 +49,3 @@ along with GCC; see the file COPYING3. If not see
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
#define NO_IMPLICIT_EXTERN_C 1
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
diff --git a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h
index 29eaccc8724..dfa40b91a94 100644
--- a/gcc/config/mips/sde.h
+++ b/gcc/config/mips/sde.h
@@ -94,9 +94,6 @@ along with GCC; see the file COPYING3. If not see
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "long int"
-/* Enable parsing of #pragma pack(push,<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 "."
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index 251c88b938f..1d8665bdf3b 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -887,8 +887,6 @@ typedef struct { int regs; int lib; } CUMULATIVE_ARGS;
#define NO_IMPLICIT_EXTERN_C
-#define HANDLE_SYSV_PRAGMA 1
-
/* These are checked. */
#define DOLLARS_IN_IDENTIFIERS 0
#define NO_DOLLAR_IN_LABEL
diff --git a/gcc/config/netbsd.h b/gcc/config/netbsd.h
index 4f82809c8c1..ddf6567dc53 100644
--- a/gcc/config/netbsd.h
+++ b/gcc/config/netbsd.h
@@ -1,6 +1,6 @@
/* Base configuration file for all NetBSD targets.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2007 Free Software Foundation, Inc.
+ 2007, 2009, 2010 Free Software Foundation, Inc.
This file is part of GCC.
@@ -158,10 +158,6 @@ along with GCC; see the file COPYING3. If not see
#undef TARGET_POSIX_IO
#define TARGET_POSIX_IO
-/* Handle #pragma weak and #pragma pack. */
-
-#define HANDLE_SYSV_PRAGMA 1
-
/* Don't assume anything about the header files. */
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
@@ -224,6 +220,3 @@ __enable_execute_stack (void *addr) \
/* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */ \
(void) mprotect (page, end - page, 7); \
}
-
-/* Define this so we can compile MS code for use with WINE. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
diff --git a/gcc/config/openbsd.h b/gcc/config/openbsd.h
index d15dff15f98..b1076a7b4d6 100644
--- a/gcc/config/openbsd.h
+++ b/gcc/config/openbsd.h
@@ -282,12 +282,6 @@ do { \
/* Storage layout. */
-/* bug work around: we don't want to support #pragma weak, but the current
- code layout needs HANDLE_PRAGMA_WEAK asserted for __attribute((weak)) to
- work. On the other hand, we don't define HANDLE_PRAGMA_WEAK directly,
- as this depends on a few other details as well... */
-#define HANDLE_SYSV_PRAGMA 1
-
/* Stack is explicitly denied execution rights on OpenBSD platforms. */
#define ENABLE_EXECUTE_STACK \
extern void __enable_execute_stack (void *); \
diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h
index b600b0e3d4c..69a9d1905f7 100644
--- a/gcc/config/pa/pa-hpux.h
+++ b/gcc/config/pa/pa-hpux.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for HP-UX.
- Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008
+ Copyright (C) 1991, 1995, 1996, 2002, 2003, 2004, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GCC.
@@ -114,12 +114,4 @@ along with GCC; see the file COPYING3. If not see
#undef TARGET_HPUX_UNWIND_LIBRARY
#define TARGET_HPUX_UNWIND_LIBRARY 1
-/* Handle #pragma weak and #pragma pack. */
-#undef HANDLE_SYSV_PRAGMA
-#define HANDLE_SYSV_PRAGMA
-
-/* Define this so we can compile MS code for use with WINE. */
-#undef HANDLE_PRAGMA_PACK_PUSH_POP
-#define HANDLE_PRAGMA_PACK_PUSH_POP
-
#define MD_UNWIND_SUPPORT "config/pa/hpux-unwind.h"
diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h
index 9d5a380a40d..7f60d329bed 100644
--- a/gcc/config/rs6000/aix.h
+++ b/gcc/config/rs6000/aix.h
@@ -56,9 +56,6 @@
#define ASM_OUTPUT_DWARF_TABLE_REF rs6000_aix_asm_output_dwarf_table_ref
#endif
-/* Handle #pragma weak and #pragma pack. */
-#define HANDLE_SYSV_PRAGMA 1
-
/* This is the only version of nm that collect2 can work with. */
#define REAL_NM_FILE_NAME "/usr/ucb/nm"
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index d557ce1626a..ae27682a682 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -1062,18 +1062,6 @@ ncrtn.o%s"
/* Function name to call to do profiling. */
#define RS6000_MCOUNT "_mcount"
-/* Define this macro (to a value of 1) if you want to support the
- Win32 style pragmas #pragma pack(push,<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. */
diff --git a/gcc/config/rx/rx.h b/gcc/config/rx/rx.h
index 9eb25e8aa22..233fac2f3dc 100644
--- a/gcc/config/rx/rx.h
+++ b/gcc/config/rx/rx.h
@@ -151,8 +151,6 @@ extern enum rx_cpu_types rx_cpu_type;
#define LEGITIMATE_CONSTANT_P(X) rx_is_legitimate_constant (X)
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
#define HAVE_PRE_DECCREMENT 1
#define HAVE_POST_INCREMENT 1
diff --git a/gcc/config/score/elf.h b/gcc/config/score/elf.h
index d04373ecd85..30fc7f016cc 100644
--- a/gcc/config/score/elf.h
+++ b/gcc/config/score/elf.h
@@ -1,5 +1,5 @@
/* elf.h for Sunplus S+CORE processor
- Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc.
This file is part of GCC.
@@ -95,6 +95,3 @@
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
-
-/* We support #pragma. */
-#define HANDLE_SYSV_PRAGMA 1
diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h
index 98d2f24573f..b5e054b18d9 100644
--- a/gcc/config/spu/spu.h
+++ b/gcc/config/spu/spu.h
@@ -512,8 +512,6 @@ targetm.resolve_overloaded_builtin = spu_resolve_overloaded_builtin; \
#define NO_IMPLICIT_EXTERN_C 1
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
-
/* Canonicalize a comparison from one we don't have to one we do have. */
#define CANONICALIZE_COMPARISON(CODE,OP0,OP1) \
do { \
diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h
index 1ac73c41b9b..1781bc3adea 100644
--- a/gcc/config/stormy16/stormy16.h
+++ b/gcc/config/stormy16/stormy16.h
@@ -587,5 +587,3 @@ enum reg_class
#define FUNCTION_MODE HImode
#define NO_IMPLICIT_EXTERN_C
-
-#define HANDLE_SYSV_PRAGMA 1
diff --git a/gcc/config/xtensa/elf.h b/gcc/config/xtensa/elf.h
index f0d18059539..90b1c717666 100644
--- a/gcc/config/xtensa/elf.h
+++ b/gcc/config/xtensa/elf.h
@@ -1,6 +1,6 @@
/* Xtensa/Elf configuration.
Derived from the configuration for GCC for Intel i386 running Linux.
- Copyright (C) 2001, 2003, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2006, 2007, 2010 Free Software Foundation, Inc.
This file is part of GCC.
@@ -98,5 +98,3 @@ do \
"GCC", PREFIX_PRIORITY_LAST, 0, 0); \
} \
while (0)
-
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8d3b7770b4a..6daf31b38a8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 5fe60f90458..dc735443db2 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -3239,7 +3239,6 @@ handle_namespace_attrs (tree ns, tree attributes)
tree name = TREE_PURPOSE (d);
tree args = TREE_VALUE (d);
-#ifdef HANDLE_PRAGMA_VISIBILITY
if (is_attribute_p ("visibility", name))
{
tree x = args ? TREE_VALUE (args) : NULL_TREE;
@@ -3260,7 +3259,6 @@ handle_namespace_attrs (tree ns, tree attributes)
saw_vis = true;
}
else
-#endif
{
warning (OPT_Wattributes, "%qD attribute directive ignored",
name);
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 14961ce3ee9..3ed0579538a 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -13838,10 +13838,8 @@ cp_parser_namespace_definition (cp_parser* parser)
/* Parse the body of the namespace. */
cp_parser_namespace_body (parser);
-#ifdef HANDLE_PRAGMA_VISIBILITY
if (has_visibility)
pop_visibility (1);
-#endif
/* Finish the namespace. */
pop_namespace ();
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 1639e943c9f..58d5bbd55f7 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -10666,55 +10666,8 @@ rule to the makefile fragment pointed to by @code{tmake_file} that shows
how to build this object file.
@end deftypefun
-@findex #pragma
-@findex pragma
-@defmac HANDLE_SYSV_PRAGMA
-Define this macro (to a value of 1) if you want the System V style
-pragmas @samp{#pragma pack(<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
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index 502145e28fa..d9fed9bdadf 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -10628,55 +10628,8 @@ rule to the makefile fragment pointed to by @code{tmake_file} that shows
how to build this object file.
@end deftypefun
-@findex #pragma
-@findex pragma
-@defmac HANDLE_SYSV_PRAGMA
-Define this macro (to a value of 1) if you want the System V style
-pragmas @samp{#pragma pack(<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
diff --git a/gcc/system.h b/gcc/system.h
index a4f1da6c170..42332b3bd01 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -777,7 +777,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \
ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \
SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \
- TARGET_OPTION_TRANSLATE_TABLE
+ TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \
+ HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK
/* Hooks that are no longer used. */
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1d6a14ad017..87e7ab5c5e4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/g++.dg/cpp/_Pragma1.C b/gcc/testsuite/g++.dg/cpp/_Pragma1.C
index 2ca13efbdb1..2a4086b8125 100644
--- a/gcc/testsuite/g++.dg/cpp/_Pragma1.C
+++ b/gcc/testsuite/g++.dg/cpp/_Pragma1.C
@@ -1,8 +1,7 @@
// PR c++/27748
// This is supposed to succeed only if
-// the target defines HANDLE_PRAGMA_PACK_PUSH_POP
-// and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.
-// { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* mips-sgi-irix* sh*-[us]*-elf m32c-*-* *-*-vxworks alpha*-dec-osf* } } } }
+// the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION.
+// { dg-do compile { target { ! { *-*-solaris2* } } } }
#define push bar
#define foo _Pragma ("pack(push)")
diff --git a/gcc/testsuite/gcc.dg/cpp/_Pragma6.c b/gcc/testsuite/gcc.dg/cpp/_Pragma6.c
index dfdaf792ef6..7f3f7763e75 100644
--- a/gcc/testsuite/gcc.dg/cpp/_Pragma6.c
+++ b/gcc/testsuite/gcc.dg/cpp/_Pragma6.c
@@ -1,8 +1,7 @@
/* PR c/27747 */
/* This is supposed to succeed only if
- the target defines HANDLE_PRAGMA_PACK_PUSH_POP
- and doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */
-/* { dg-do compile { target { ! { powerpc-ibm-aix* *-*-solaris2* fido-*-* m68k-*-* sh*-[us]*-elf m32c-*-* *-*-vxworks moxie-*-* mips-sgi-irix* alpha*-dec-osf* } } } } */
+ the target doesn't define HANDLE_PRAGMA_PACK_WITH_EXPANSION. */
+/* { dg-do compile { target { ! { *-*-solaris2* } } } } */
#define push bar
#define foo _Pragma ("pack(push)")
diff --git a/gcc/testsuite/gcc.dg/pack-test-1.c b/gcc/testsuite/gcc.dg/pack-test-1.c
index 8bd3f6c7528..e019e783791 100644
--- a/gcc/testsuite/gcc.dg/pack-test-1.c
+++ b/gcc/testsuite/gcc.dg/pack-test-1.c
@@ -1,7 +1,7 @@
/* Test semantics of #pragma pack.
Contributed by Mike Coleman <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
diff --git a/gcc/testsuite/gcc.dg/pack-test-2.c b/gcc/testsuite/gcc.dg/pack-test-2.c
index 86e4d8df4ac..5c2f6ae4662 100644
--- a/gcc/testsuite/gcc.dg/pack-test-2.c
+++ b/gcc/testsuite/gcc.dg/pack-test-2.c
@@ -1,7 +1,7 @@
/* Tests for syntax checking of #pragma pack.
Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
-/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
+/* { dg-do compile } */
#pragma pack(pop) /* { dg-warning "without matching" } */
diff --git a/gcc/testsuite/gcc.dg/pragma-align.c b/gcc/testsuite/gcc.dg/pragma-align.c
index c1b4ded3732..3569a1fb241 100644
--- a/gcc/testsuite/gcc.dg/pragma-align.c
+++ b/gcc/testsuite/gcc.dg/pragma-align.c
@@ -1,6 +1,6 @@
-/* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */
+/* Prove that pragma alignment handling works somewhat. */
-/* { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* *-*-solaris2.* } } */
+/* { dg-do run } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/pragma-pack-4.c b/gcc/testsuite/gcc.dg/pragma-pack-4.c
index 05a24e5d6a5..c2ea59e9dac 100644
--- a/gcc/testsuite/gcc.dg/pragma-pack-4.c
+++ b/gcc/testsuite/gcc.dg/pragma-pack-4.c
@@ -1,6 +1,5 @@
/* PR c/28286 */
/* { dg-do compile } */
-/* { dg-skip-if "no Pragma pack" { "avr-*-*" } { "*" } { "" } } */
#pragma pack(0.5) /* { dg-warning "invalid constant" } */
diff --git a/gcc/testsuite/gcc.dg/ucnid-10.c b/gcc/testsuite/gcc.dg/ucnid-10.c
index 39148108b33..bbcde1ff605 100644
--- a/gcc/testsuite/gcc.dg/ucnid-10.c
+++ b/gcc/testsuite/gcc.dg/ucnid-10.c
@@ -1,6 +1,6 @@
/* Verify diagnostics for extended identifiers refer to UCNs (in the C
locale). Test #pragma pack diagnostics. */
-/* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
+/* { dg-do compile } */
/* { dg-options "-std=gnu99 -fextended-identifiers" } */
#pragma pack(push)