aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-context.h
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-07-27 14:33:52 +0100
committerPhilip Herron <philip.herron@embecosm.com>2021-07-27 14:33:52 +0100
commit7f8adccb5056152edc4aacf08ce2ed040f076171 (patch)
treefa41b5f161823fe6b43413370422f25414f8fcaa /gcc/rust/backend/rust-compile-context.h
parent2818017d36f5c6279a2372b0a8efbe1f17b3f374 (diff)
downloadgcc-7f8adccb5056152edc4aacf08ce2ed040f076171.zip
gcc-7f8adccb5056152edc4aacf08ce2ed040f076171.tar.gz
gcc-7f8adccb5056152edc4aacf08ce2ed040f076171.tar.bz2
Add support for varadic extern "c" functions like printf
Varadic functions are only allowed in extern functions as far as I know.
Diffstat (limited to 'gcc/rust/backend/rust-compile-context.h')
-rw-r--r--gcc/rust/backend/rust-compile-context.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/rust/backend/rust-compile-context.h b/gcc/rust/backend/rust-compile-context.h
index bb4f0ab..0aaf084 100644
--- a/gcc/rust/backend/rust-compile-context.h
+++ b/gcc/rust/backend/rust-compile-context.h
@@ -371,9 +371,14 @@ public:
parameters.push_back (compiled_param);
}
- translated = ctx->get_backend ()->function_type (
- receiver, parameters, results, NULL,
- ctx->get_mappings ()->lookup_location (type.get_ref ()));
+ if (!type.is_varadic ())
+ translated = ctx->get_backend ()->function_type (
+ receiver, parameters, results, NULL,
+ ctx->get_mappings ()->lookup_location (type.get_ref ()));
+ else
+ translated = ctx->get_backend ()->function_type_varadic (
+ receiver, parameters, results, NULL,
+ ctx->get_mappings ()->lookup_location (type.get_ref ()));
}
void visit (TyTy::FnPtr &type) override