diff options
author | Philip Herron <philip.herron@embecosm.com> | 2021-07-27 14:33:52 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2021-07-27 14:33:52 +0100 |
commit | 7f8adccb5056152edc4aacf08ce2ed040f076171 (patch) | |
tree | fa41b5f161823fe6b43413370422f25414f8fcaa /gcc/rust/backend/rust-compile-context.h | |
parent | 2818017d36f5c6279a2372b0a8efbe1f17b3f374 (diff) | |
download | gcc-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.h | 11 |
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 |