aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2005-12-10 01:09:48 +0000
committerMike Stump <mrs@apple.com>2005-12-10 01:09:48 +0000
commit9471b17dc20ce29b01cf1a985c026d172670efd4 (patch)
tree38cb5c3845464139b47a7a95836c68b1daace44c
parentc45ce06a5409bd2ff25eba31a0f5bf76691a12d8 (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-ppc6
-rw-r--r--gcc/testsuite/g++.dg/asm-block-36.C28
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-36.c28
-rw-r--r--libcpp/ChangeLog.apple-ppc6
-rw-r--r--libcpp/macro.c7
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)