summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-22 07:18:09 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2003-09-22 07:18:09 +0000
commitf2cd5f618db95ddd9397f613a9f26da962783099 (patch)
tree647c1f7191a782d3c384439c42fd2ffc800cb980
parent92770800d2e25d2f2f31b10090229afd3ef94951 (diff)
downloadppe42-gcc-f2cd5f618db95ddd9397f613a9f26da962783099.tar.gz
ppe42-gcc-f2cd5f618db95ddd9397f613a9f26da962783099.zip
2003-09-21 Andrew Pinski <pinskia@physics.uc.edu>
PR target/12281 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call mark_referenced instead of setting TREE_SYMBOL_REFERENCED. 2003-09-21 Andrew Pinski <pinskia@physics.uc.edu> PR target/12281 * gcc.c-torture/compile/20030921-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71648 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/darwin.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030921-1.c10
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b66b5e43e19..b67008fc39c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-09-21 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/12281
+ * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
+ mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
+
2003-09-22 Olivier Hainque <hainque@act-europe.fr>
PR target/9786
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index faa9739873f..4e1c45c6012 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -398,12 +398,12 @@ machopic_validate_stub_or_non_lazy_ptr (const char *name, int validate_stub)
original symbol as being referenced. */
TREE_USED (temp) = 1;
if (TREE_CODE (TREE_VALUE (temp)) == IDENTIFIER_NODE)
- TREE_SYMBOL_REFERENCED (TREE_VALUE (temp)) = 1;
+ mark_referenced (TREE_VALUE (temp));
real_name = IDENTIFIER_POINTER (TREE_VALUE (temp));
real_name = darwin_strip_name_encoding (real_name);
id2 = maybe_get_identifier (real_name);
if (id2)
- TREE_SYMBOL_REFERENCED (id2) = 1;
+ mark_referenced (id2);
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5c9c984ed45..a06118698a1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-21 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/12281
+ * gcc.c-torture/compile/20030921-1.c: New test.
+
2003-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* g++.dg/opt/reg-stack2.C: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030921-1.c b/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
new file mode 100644
index 00000000000..8199dc657f2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
@@ -0,0 +1,10 @@
+/* PR 12281 The darwin back-end was causing the function
+ f is not being emitted. TREE_SYMBOL_REFERENCED was being set
+ instead of calling mark_referenced. */
+
+
+static void f(void);
+void g(void (*x) (void)){x();}
+static inline void f(void){}
+void h(){g(f);}
+int main(){h();return 0;}
OpenPOWER on IntegriCloud