From 5c5bf6b20f6bf794e2b1bcd04903094b5a4035be Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Wed, 8 Feb 2006 19:13:15 +0000 Subject: Radar 4407059 * c-lex.c (c_lex_with_flags): Only recognize "offset" when doing x86 assembly. * parser.c (cp_parser_unary_operator): Only recognize "offset" when doing x86 assembly. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@110762 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.apple-ppc | 6 ++++++ gcc/c-lex.c | 4 +++- gcc/cp/ChangeLog.apple-ppc | 6 ++++++ gcc/cp/parser.c | 1 + gcc/testsuite/ChangeLog.apple-ppc | 6 ++++++ gcc/testsuite/g++.dg/asm-block-40.C | 10 ++++++++++ gcc/testsuite/gcc.apple/asm-block-40.c | 10 ++++++++++ 7 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/asm-block-40.C create mode 100644 gcc/testsuite/gcc.apple/asm-block-40.c diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc index 3a6f11f9bf9..d319bc7862f 100644 --- a/gcc/ChangeLog.apple-ppc +++ b/gcc/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2006-02-08 Mike Stump + + Radar 4407059 + * c-lex.c (c_lex_with_flags): Only recognize "offset" when doing + x86 assembly. + 2006-02-03 Mike Stump Radar 4432782 diff --git a/gcc/c-lex.c b/gcc/c-lex.c index e4c8afdbd74..45bf3893d1a 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -507,7 +507,9 @@ c_lex_with_flags (tree *value, unsigned char *cpp_flags) *value = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok->val.node)); /* APPLE LOCAL begin CW asm blocks */ if (cw_asm_state >= cw_asm_decls - && strcasecmp (IDENTIFIER_POINTER (HT_IDENT_TO_GCC_IDENT (HT_NODE (tok->val.node))), "offset") == 0) + && flag_ms_asms + && strcasecmp (IDENTIFIER_POINTER (HT_IDENT_TO_GCC_IDENT (HT_NODE (tok->val.node))), + "offset") == 0) { type = CPP_AND; *value = NULL_TREE; diff --git a/gcc/cp/ChangeLog.apple-ppc b/gcc/cp/ChangeLog.apple-ppc index 096f561677c..e6bf8f0c560 100644 --- a/gcc/cp/ChangeLog.apple-ppc +++ b/gcc/cp/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2006-02-08 Mike Stump + + Radar 4407059 + * parser.c (cp_parser_unary_operator): Only recognize "offset" + when doing x86 assembly. + 2006-01-20 Mike Stump Radar 4381918 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 4fd29fc5793..eb4dc84ae54 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -5349,6 +5349,7 @@ cp_parser_unary_operator (cp_token* token) /* APPLE LOCAL begin CW asm blocks */ case CPP_NAME: if (cw_asm_state >= cw_asm_decls + && flag_ms_asms && strcasecmp (IDENTIFIER_POINTER (token->value), "offset") == 0) return ADDR_EXPR; /* APPLE LOCAL end CW asm blocks */ diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index ef69501664e..af464ab9345 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2006-02-08 Mike Stump + + Radar 4407059 + * gcc.apple/asm-block-40.c: Add. + * g++.dg/asm-block-40.C: Add. + 2005-02-07 Fariborz Jahanian Radar 4219590 diff --git a/gcc/testsuite/g++.dg/asm-block-40.C b/gcc/testsuite/g++.dg/asm-block-40.C new file mode 100644 index 00000000000..c6cacda22be --- /dev/null +++ b/gcc/testsuite/g++.dg/asm-block-40.C @@ -0,0 +1,10 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target powerpc*-*-darwin* } } */ +/* { dg-options "-fasm-blocks" } */ +/* Radar 4407059 */ + +inline void foo(int offset) { + asm { + add r3,r3,offset + } +} diff --git a/gcc/testsuite/gcc.apple/asm-block-40.c b/gcc/testsuite/gcc.apple/asm-block-40.c new file mode 100644 index 00000000000..c6cacda22be --- /dev/null +++ b/gcc/testsuite/gcc.apple/asm-block-40.c @@ -0,0 +1,10 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target powerpc*-*-darwin* } } */ +/* { dg-options "-fasm-blocks" } */ +/* Radar 4407059 */ + +inline void foo(int offset) { + asm { + add r3,r3,offset + } +} -- cgit v1.2.3