diff options
author | Mike Stump <mrs@apple.com> | 2005-12-10 01:09:48 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2005-12-10 01:09:48 +0000 |
commit | 9471b17dc20ce29b01cf1a985c026d172670efd4 (patch) | |
tree | 38cb5c3845464139b47a7a95836c68b1daace44c | |
parent | c45ce06a5409bd2ff25eba31a0f5bf76691a12d8 (diff) |
libcpp:
Radar 4371958
* macro.c (cpp_get_token): Be sure to reset the BOL flag when
injecting macro bodies, as we wouldn't want a previous value.
gcc/testsuite:
* gcc.apple/asm-block-36.c: Add.
* g++.dg/asm-block-36.C: Add.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@108340 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/testsuite/ChangeLog.apple-ppc | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asm-block-36.C | 28 | ||||
-rw-r--r-- | gcc/testsuite/gcc.apple/asm-block-36.c | 28 | ||||
-rw-r--r-- | libcpp/ChangeLog.apple-ppc | 6 | ||||
-rw-r--r-- | libcpp/macro.c | 7 |
5 files changed, 75 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index 104377f6392..7cb141cf82f 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,5 +1,11 @@ 2005-12-09 Mike Stump <mrs@apple.com> + Radar 4371958 + * gcc.apple/asm-block-36.c: Add. + * g++.dg/asm-block-36.C: Add. + +2005-12-09 Mike Stump <mrs@apple.com> + Radar 4371551 * gcc.apple/asm-block-35.c: Add. * g++.dg/asm-block-35.C: Add. diff --git a/gcc/testsuite/g++.dg/asm-block-36.C b/gcc/testsuite/g++.dg/asm-block-36.C new file mode 100644 index 00000000000..f370fdfc0ab --- /dev/null +++ b/gcc/testsuite/g++.dg/asm-block-36.C @@ -0,0 +1,28 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target i?86*-*-darwin* } } */ +/* { dg-options { -fasm-blocks -msse3 } } */ +/* Radar 4371958 */ + +#define SourceArray(row, col) (sPtr [(row) * sRowBytes + (col)]) +void foo() { + char *sPtr[20]; + int sRowBytes = 1; + SourceArray(0, 0); + asm { + nop + ; w2 = SourceArray(rowIndex + 1, colIndex * sColBytes) + + nop + } +} + +void +RefBNDecimateH1() { } +#define DoOldDecimateH RefBNDecimateH1 +void X_DecimateH (int cols) { + if ( cols < 8 ) + { + DoOldDecimateH (); + return; + } + asm { call DoOldDecimateH } +} diff --git a/gcc/testsuite/gcc.apple/asm-block-36.c b/gcc/testsuite/gcc.apple/asm-block-36.c new file mode 100644 index 00000000000..f370fdfc0ab --- /dev/null +++ b/gcc/testsuite/gcc.apple/asm-block-36.c @@ -0,0 +1,28 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target i?86*-*-darwin* } } */ +/* { dg-options { -fasm-blocks -msse3 } } */ +/* Radar 4371958 */ + +#define SourceArray(row, col) (sPtr [(row) * sRowBytes + (col)]) +void foo() { + char *sPtr[20]; + int sRowBytes = 1; + SourceArray(0, 0); + asm { + nop + ; w2 = SourceArray(rowIndex + 1, colIndex * sColBytes) + + nop + } +} + +void +RefBNDecimateH1() { } +#define DoOldDecimateH RefBNDecimateH1 +void X_DecimateH (int cols) { + if ( cols < 8 ) + { + DoOldDecimateH (); + return; + } + asm { call DoOldDecimateH } +} diff --git a/libcpp/ChangeLog.apple-ppc b/libcpp/ChangeLog.apple-ppc index 6a7f54a5ac5..bc7243433b7 100644 --- a/libcpp/ChangeLog.apple-ppc +++ b/libcpp/ChangeLog.apple-ppc @@ -1,3 +1,9 @@ +2005-12-09 Mike Stump <mrs@apple.com> + + Radar 4371958 + * macro.c (cpp_get_token): Be sure to reset the BOL flag when + injecting macro bodies, as we wouldn't want a previous value. + 2005-12-07 Devang Patel <dpatel@apple.com> Ziemowit Laski <zlaski@apple.com> diff --git a/libcpp/macro.c b/libcpp/macro.c index 9bb60463248..458eca1a31d 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -1106,6 +1106,13 @@ cpp_get_token (cpp_reader *pfile) ((cpp_token *)result)->flags |= BOL; context->bol_p = false; } + else + { + /* We can reinject macro bodies into the stream of tokens, we have to + reset the BOL flag for this on the basis of the context alone to + avoid previous BOL setting for prior uses of the macro. */ + ((cpp_token *)result)->flags &= ~BOL; + } /* APPLE LOCAL end CW asm blocks */ if (result->flags & PASTE_LEFT) |