From 13f995c199ac61f02dd01c85bd5d33a24fee91bc Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Thu, 27 May 2021 21:53:29 -0400 Subject: rs6000: Override TARGET_RUST_OS_INFO in linux64.h Both config/rs6000/sysv4.h and config/rs6000/linux64.h define TARGET_RUST_OS_INFO, and both are included in that order in tm.h. This change eliminates the error directive, permitting the more specific definition in linux64.h to override the prior definition in sysv4.h. gcc/ChangeLog: 2021-05-27 Thomas Fitzsimmons * config/rs6000/linux64.h: Undefine TARGET_RUST_OS_INFO before defining it. --- gcc/config/rs6000/linux64.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index fbd8cf0..536007c 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -314,9 +314,8 @@ extern int dot_symbols; } \ while (0) -#ifdef TARGET_RUST_OS_INFO -# error "TARGET_RUST_OS_INFO already defined in linux64.h (rs6000) - c++ undefines it and redefines it." -#endif +/* Override less-specific rs6000/sysv4.h definition. */ +#undef TARGET_RUST_OS_INFO #define TARGET_RUST_OS_INFO() \ do { \ GNU_USER_TARGET_RUST_OS_INFO(); \ -- cgit v1.1 From 83c161d0b828b63b2b1a50530c7bea367ec30896 Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Thu, 27 May 2021 21:55:46 -0400 Subject: rs6000: Recognize GNU Rust when producing epilogue Handling the GNU Rust language when writing a function's epilogue is necessary to avoid an internal compiler error. gcc/ChangeLog: 2021-05-27 Thomas Fitzsimmons Mark Wielaard * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue): Set language type field to 0 for GNU Rust. Co-Authored-By: Mark Wielaard --- gcc/config/rs6000/rs6000-logue.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c index b0ac183..7da8db6 100644 --- a/gcc/config/rs6000/rs6000-logue.c +++ b/gcc/config/rs6000/rs6000-logue.c @@ -5262,12 +5262,13 @@ rs6000_output_function_epilogue (FILE *file) use language_string. C is 0. Fortran is 1. Ada is 3. Modula-2 is 8. C++ is 9. Java is 13. Objective-C is 14. Objective-C++ isn't assigned - a number, so for now use 9. LTO, Go, D, and JIT aren't assigned - numbers either, so for now use 0. */ + a number, so for now use 9. LTO, Go, D, Rust, and JIT aren't + assigned numbers either, so for now use 0. */ if (lang_GNU_C () || ! strcmp (language_string, "GNU GIMPLE") || ! strcmp (language_string, "GNU Go") || ! strcmp (language_string, "GNU D") + || ! strcmp (language_string, "GNU Rust") || ! strcmp (language_string, "libgccjit")) i = 0; else if (! strcmp (language_string, "GNU F77") -- cgit v1.1