aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@codesourcery.com>2004-11-23 23:25:40 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2004-11-23 23:25:40 +0000
commitb5b3e36a98b42afa15fe85a1e2296e9b1d4ac37f (patch)
treec218ffe339a9fcc74872e3e0827398246b77ded8 /gcc/config
parenta996709e40e818bf3b3561f229514991e9d90fa9 (diff)
downloadgcc-b5b3e36a98b42afa15fe85a1e2296e9b1d4ac37f.zip
gcc-b5b3e36a98b42afa15fe85a1e2296e9b1d4ac37f.tar.gz
gcc-b5b3e36a98b42afa15fe85a1e2296e9b1d4ac37f.tar.bz2
sol2-c.c (solaris_register_pragmas): Use c_register_pragma_with_expansion.
gcc: 2004-11-23 Daniel Jacobowitz <dan@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * config/sol2-c.c (solaris_register_pragmas): Use c_register_pragma_with_expansion. * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define. * c-pragma.c (c_register_pragma): Update call to cpp_register_pragma. (c_register_pragma_with_expansion): New function. (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION. * c-pragma.h (c_register_pragma_with_expansion): New prototype. * doc/extend.texi (Solaris Pragmas): Mention macro expansion for #pragma align. * doc/tm.texi (c_register_pragma_with_expansion, HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document. gcc/testsuite: 2004-11-23 Daniel Jacobowitz <dan@codesourcery.com> * gcc.dg/pragma-align-2.c: Test macro expansion. * gcc.dg/pragma-pack-2.c: New test. libcpp: 2004-11-23 Daniel Jacobowitz <dan@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * internal.h (struct lexer_state): Add in_deferred_pragma. * directives.c (struct pragma_entry): Add allow_expansion. (insert_pragma_entry): Take allow_expansion flag. (register_pragma): Likewise. (cpp_register_pragma): Likewise. (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma. (do_pragma): Honor allow_expansion. (cpp_handle_deferred_pragma): Set in_deferred_pragma. * include/cpplib.h (cpp_register_pragma): Update prototype. Co-Authored-By: Joseph Myers <joseph@codesourcery.com> From-SVN: r91117
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/sol2-c.c2
-rw-r--r--gcc/config/sol2.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c
index 6164484..784d20b 100644
--- a/gcc/config/sol2-c.c
+++ b/gcc/config/sol2-c.c
@@ -266,7 +266,7 @@ solaris_pragma_fini (cpp_reader *pfile ATTRIBUTE_UNUSED)
void
solaris_register_pragmas (void)
{
- c_register_pragma (0, "align", solaris_pragma_align);
+ c_register_pragma_with_expansion (0, "align", solaris_pragma_align);
c_register_pragma (0, "init", solaris_pragma_init);
c_register_pragma (0, "fini", solaris_pragma_fini);
}
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
index 86d359c..1aa6aa8 100644
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -245,3 +245,6 @@ __enable_execute_stack (void *addr) \
extern GTY(()) tree solaris_pending_aligns;
extern GTY(()) tree solaris_pending_inits;
extern GTY(()) tree solaris_pending_finis;
+
+/* Allow macro expansion in #pragma pack. */
+#define HANDLE_PRAGMA_PACK_WITH_EXPANSION