From af0f185b1b7fcff04b73ce91195439d6df97cb70 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Mon, 22 Sep 2003 07:18:09 +0000 Subject: [PATCH] re PR target/12281 (not emiting function which is static and marked as inline) 2003-09-21 Andrew Pinski 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 PR target/12281 * gcc.c-torture/compile/20030921-1.c: New test. From-SVN: r71648 --- gcc/ChangeLog | 6 ++++++ gcc/config/darwin.c | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.c-torture/compile/20030921-1.c | 10 ++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/compile/20030921-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b66b5e4..b67008f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-09-21 Andrew Pinski + + 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 PR target/9786 diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index faa9739..4e1c45c 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 5c9c984..a061186 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-09-21 Andrew Pinski + + PR target/12281 + * gcc.c-torture/compile/20030921-1.c: New test. + 2003-09-22 Eric Botcazou * 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 0000000..8199dc6 --- /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;} -- 2.7.4