[COMMITTED] gccrs: move functions from rust-gcc-diagnostics to rust-diagnostics.cc

2023-09-11 Thread Arthur Cohen
From: Parthib <94271200+parthib...@users.noreply.github.com>

gcc/rust/ChangeLog:

* Make-lang.in: Removed rust-gcc-diagnostics object file.
* rust-diagnostics.cc (rust_be_get_quotechars): Added from original 
file.
(rust_be_internal_error_at): Likewise.
(rust_be_error_at): Likewise.
(class rust_error_code_rule): Likewise.
(rust_be_warning_at): Likewise.
(rust_be_fatal_error): Likewise.
(rust_be_inform): Likewise.
(rust_be_debug_p): Likewise.

* rust-gcc-diagnostics.cc: Removed.

Signed-off-by: Parthib Datta 

Tested on x86-64 Linux

---
 gcc/rust/Make-lang.in|   1 -
 gcc/rust/rust-diagnostics.cc |  95 +
 gcc/rust/rust-gcc-diagnostics.cc | 117 ---
 3 files changed, 95 insertions(+), 118 deletions(-)
 delete mode 100644 gcc/rust/rust-gcc-diagnostics.cc

diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
index 3ed0c09e0e7..6449f47564d 100644
--- a/gcc/rust/Make-lang.in
+++ b/gcc/rust/Make-lang.in
@@ -66,7 +66,6 @@ GRS_OBJS = \
 rust/rust-lang.o \
 rust/rust-object-export.o \
 rust/rust-linemap.o \
-rust/rust-gcc-diagnostics.o \
 rust/rust-diagnostics.o \
 rust/rust-gcc.o \
 rust/rust-token.o \
diff --git a/gcc/rust/rust-diagnostics.cc b/gcc/rust/rust-diagnostics.cc
index f29aec67652..16665b058d1 100644
--- a/gcc/rust/rust-diagnostics.cc
+++ b/gcc/rust/rust-diagnostics.cc
@@ -21,6 +21,9 @@
 #include "rust-system.h"
 #include "rust-diagnostics.h"
 
+#include "options.h"
+#include "diagnostic-metadata.h"
+
 static std::string
 mformat_value ()
 {
@@ -130,6 +133,13 @@ expand_message (const char *fmt, va_list ap)
 static const char *cached_open_quote = NULL;
 static const char *cached_close_quote = NULL;
 
+void
+rust_be_get_quotechars (const char **open_qu, const char **close_qu)
+{
+  *open_qu = open_quote;
+  *close_qu = close_quote;
+}
+
 const char *
 rust_open_quote ()
 {
@@ -146,6 +156,16 @@ rust_close_quote ()
   return cached_close_quote;
 }
 
+void
+rust_be_internal_error_at (const Location location, const std::string &errmsg)
+{
+  std::string loc_str = Linemap::location_to_string (location);
+  if (loc_str.empty ())
+internal_error ("%s", errmsg.c_str ());
+  else
+internal_error ("at %s, %s", loc_str.c_str (), errmsg.c_str ());
+}
+
 void
 rust_internal_error_at (const Location location, const char *fmt, ...)
 {
@@ -156,6 +176,13 @@ rust_internal_error_at (const Location location, const 
char *fmt, ...)
   va_end (ap);
 }
 
+void
+rust_be_error_at (const Location location, const std::string &errmsg)
+{
+  location_t gcc_loc = location.gcc_location ();
+  error_at (gcc_loc, "%s", errmsg.c_str ());
+}
+
 void
 rust_error_at (const Location location, const char *fmt, ...)
 {
@@ -166,6 +193,38 @@ rust_error_at (const Location location, const char *fmt, 
...)
   va_end (ap);
 }
 
+class rust_error_code_rule : public diagnostic_metadata::rule
+{
+public:
+  rust_error_code_rule (const ErrorCode code) : m_code (code) {}
+
+  char *make_description () const final override
+  {
+return xstrdup (m_code.m_str);
+  }
+
+  char *make_url () const final override
+  {
+return concat ("https://doc.rust-lang.org/error-index.html#";, m_code.m_str,
+  NULL);
+  }
+
+private:
+  const ErrorCode m_code;
+};
+
+void
+rust_be_error_at (const RichLocation &location, const ErrorCode code,
+ const std::string &errmsg)
+{
+  /* TODO: 'error_at' would like a non-'const' 'rich_location *'.  */
+  rich_location &gcc_loc = const_cast (location.get ());
+  diagnostic_metadata m;
+  rust_error_code_rule rule (code);
+  m.add_rule (rule);
+  error_meta (&gcc_loc, m, "%s", errmsg.c_str ());
+}
+
 void
 rust_error_at (const RichLocation &location, const ErrorCode code,
   const char *fmt, ...)
@@ -177,6 +236,14 @@ rust_error_at (const RichLocation &location, const 
ErrorCode code,
   va_end (ap);
 }
 
+void
+rust_be_warning_at (const Location location, int opt,
+   const std::string &warningmsg)
+{
+  location_t gcc_loc = location.gcc_location ();
+  warning_at (gcc_loc, opt, "%s", warningmsg.c_str ());
+}
+
 void
 rust_warning_at (const Location location, int opt, const char *fmt, ...)
 {
@@ -187,6 +254,13 @@ rust_warning_at (const Location location, int opt, const 
char *fmt, ...)
   va_end (ap);
 }
 
+void
+rust_be_fatal_error (const Location location, const std::string &fatalmsg)
+{
+  location_t gcc_loc = location.gcc_location ();
+  fatal_error (gcc_loc, "%s", fatalmsg.c_str ());
+}
+
 void
 rust_fatal_error (const Location location, const char *fmt, ...)
 {
@@ -197,6 +271,13 @@ rust_fatal_error (const Location location, const char 
*fmt, ...)
   va_end (ap);
 }
 
+void
+rust_be_inform (const Location location, const std::string &infomsg)
+{
+  location_t gcc_loc = location.gcc_location ();
+  inform (gcc_loc, "%s", inf

☠ Buildbot (Sourceware): gccrust - failed '! grep ...' (failure) (master)

2023-09-11 Thread builder--- via Gcc-rust
A new failure has been detected on builder gccrust-fedora-x86_64 while building 
gccrust.

Full details are available at:
https://builder.sourceware.org/buildbot/#builders/16/builds/1627

Build state: failed '! grep ...' (failure)
Revision: a804f981959909e1676d9ccbcdd0470a4712b2b4
Worker: bb2-1
Build Reason: (unknown)
Blamelist: Arthur Cohen , Pierre-Emmanuel Patry 


Steps:

- 0: worker_preparation ( success )

- 1: git checkout ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/1/logs/stdio

- 2: rm -rf gccrs-build ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/2/logs/stdio

- 3: configure ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/3/logs/stdio
- config.log: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/3/logs/config_log

- 4: make ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/4/logs/stdio
- warnings (40): 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/4/logs/warnings__40_

- 5: make check ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/5/logs/stdio
- rust.sum: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/5/logs/rust_sum
- rust.log: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/5/logs/rust_log
- warnings (6): 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/5/logs/warnings__6_

- 6: grep FAIL or unexpected rust.sum ( failure )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/6/logs/stdio

- 7: prep ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/7/logs/stdio

- 8: build bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/8/logs/stdio

- 9: fetch bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/9/logs/stdio

- 10: unpack bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/10/logs/stdio

- 11: pass .bunsen.source.gitname ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/11/logs/stdio

- 12: pass .bunsen.source.gitdescribe ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/12/logs/stdio

- 13: pass .bunsen.source.gitbranch ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/13/logs/stdio

- 14: pass .bunsen.source.gitrepo ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/14/logs/stdio

- 15: upload to bunsen ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/15/logs/stdio

- 16: clean up ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/16/logs/stdio

- 17: rm -rf gccrs-build_1 ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1627/steps/17/logs/stdio

A new failure has been detected on builder gccrust-debian-i386 while building 
gccrust.

Full details are available at:
https://builder.sourceware.org/buildbot/#builders/27/builds/1644

Build state: failed '! grep ...' (failure)
Revision: a804f981959909e1676d9ccbcdd0470a4712b2b4
Worker: debian-i386
Build Reason: (unknown)
Blamelist: Arthur Cohen , Pierre-Emmanuel Patry 


Steps:

- 0: worker_preparation ( success )

- 1: git checkout ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/1/logs/stdio

- 2: rm -rf gccrs-build ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/2/logs/stdio

- 3: configure ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/3/logs/stdio
- config.log: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/3/logs/config_log

- 4: make ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/4/logs/stdio
- warnings (35): 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/4/logs/warnings__35_

- 5: make check ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/5/logs/stdio
- rust.sum: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1644/steps/5/logs/rus

☺ Buildbot (Sourceware): gccrust - build successful (master)

2023-09-11 Thread builder--- via Gcc-rust
A restored build has been detected on builder gccrust-fedora-x86_64 while 
building gccrust.

Full details are available at:
https://builder.sourceware.org/buildbot/#builders/16/builds/1628

Build state: build successful
Revision: da2203ca3f85c89b65388685cb3968aef20ad4eb
Worker: bb1-1
Build Reason: (unknown)
Blamelist: Arthur Cohen , Pierre-Emmanuel Patry 


Steps:

- 0: worker_preparation ( success )

- 1: git checkout ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/1/logs/stdio

- 2: rm -rf gccrs-build ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/2/logs/stdio

- 3: configure ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/3/logs/stdio
- config.log: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/3/logs/config_log

- 4: make ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/4/logs/stdio
- warnings (40): 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/4/logs/warnings__40_

- 5: make check ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/5/logs/stdio
- rust.sum: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/5/logs/rust_sum
- rust.log: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/5/logs/rust_log
- warnings (6): 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/5/logs/warnings__6_

- 6: grep FAIL or unexpected rust.sum ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/6/logs/stdio

- 7: prep ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/7/logs/stdio

- 8: build bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/8/logs/stdio

- 9: fetch bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/9/logs/stdio

- 10: unpack bunsen.cpio.gz ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/10/logs/stdio

- 11: pass .bunsen.source.gitname ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/11/logs/stdio

- 12: pass .bunsen.source.gitdescribe ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/12/logs/stdio

- 13: pass .bunsen.source.gitbranch ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/13/logs/stdio

- 14: pass .bunsen.source.gitrepo ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/14/logs/stdio

- 15: upload to bunsen ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/15/logs/stdio

- 16: clean up ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/16/logs/stdio

- 17: rm -rf gccrs-build_1 ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/16/builds/1628/steps/17/logs/stdio

A restored build has been detected on builder gccrust-debian-i386 while 
building gccrust.

Full details are available at:
https://builder.sourceware.org/buildbot/#builders/27/builds/1645

Build state: build successful
Revision: da2203ca3f85c89b65388685cb3968aef20ad4eb
Worker: debian-i386-2
Build Reason: (unknown)
Blamelist: Arthur Cohen , Pierre-Emmanuel Patry 


Steps:

- 0: worker_preparation ( success )

- 1: git checkout ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/1/logs/stdio

- 2: rm -rf gccrs-build ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/2/logs/stdio

- 3: configure ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/3/logs/stdio
- config.log: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/3/logs/config_log

- 4: make ( warnings )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/4/logs/stdio
- warnings (35): 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/4/logs/warnings__35_

- 5: make check ( success )
Logs:
- stdio: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/5/logs/stdio
- rust.sum: 
https://builder.sourceware.org/buildbot/#builders/27/builds/1645/steps/5/logs/rust_sum
- ru