aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2024-02-29 16:09:23 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2024-08-01 13:12:16 +0200
commitd0e8bf92395be8c4b5f059f93006655b63e1367e (patch)
treed216fae37b78d8a25a353ba6edd7546d37e8f059 /gcc
parent444b41bf06c36af3f8659a5057dae454aac90156 (diff)
downloadgcc-d0e8bf92395be8c4b5f059f93006655b63e1367e.zip
gcc-d0e8bf92395be8c4b5f059f93006655b63e1367e.tar.gz
gcc-d0e8bf92395be8c4b5f059f93006655b63e1367e.tar.bz2
gccrs: format-args: Add basic test case
gcc/testsuite/ChangeLog: * rust/compile/format_args_basic_expansion.rs: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/format_args_basic_expansion.rs47
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/format_args_basic_expansion.rs b/gcc/testsuite/rust/compile/format_args_basic_expansion.rs
new file mode 100644
index 0000000..40bcd3c
--- /dev/null
+++ b/gcc/testsuite/rust/compile/format_args_basic_expansion.rs
@@ -0,0 +1,47 @@
+#![feature(rustc_attrs)]
+
+#[rustc_builtin_macro]
+macro_rules! format_args {
+ () => {};
+}
+
+#[lang = "sized"]
+trait Sized {}
+
+pub mod core {
+ pub mod fmt {
+ pub struct Formatter;
+ pub struct Result;
+
+ pub struct Arguments<'a>;
+
+ impl<'a> Arguments<'a> {
+ pub fn new_v1(_: &'a [&'static str], _: &'a [ArgumentV1<'a>]) -> Arguments<'a> {
+ Arguments
+ }
+ }
+
+ pub struct ArgumentV1<'a>;
+
+ impl<'a> ArgumentV1<'a> {
+ pub fn new<'b, T>(_: &'b T, _: fn(&T, &mut Formatter) -> Result) -> ArgumentV1 {
+ ArgumentV1
+ }
+ }
+
+ pub trait Display {
+ fn fmt(&self, _: &mut Formatter) -> Result;
+ }
+
+ impl Display for i32 {
+ fn fmt(&self, _: &mut Formatter) -> Result {
+ // { dg-warning "unused name .self." "" { target *-*-* } .-1 }
+ Result
+ }
+ }
+ }
+}
+
+fn main() {
+ let _formatted = format_args!("hello {}", 15);
+}