summaryrefslogtreecommitdiff
path: root/src/ir/function.rs
AgeCommit message (Collapse)Author
2022-10-04split the repo into a workspaceChristian Poveda
remove `clap` dependency :tada: update the book installation instructions
2022-09-22handle `__attribute__((noreturn))` attributeChristian Poveda
2022-09-22handle c++ `[[noreturn]]` attributeChristian Poveda
2022-09-22find all attributes in a single passChristian Poveda
2022-09-22gate `_Noreturn` detection behind `--enable-fucntion-attribute-detection`Christian Poveda
2022-09-22check for noreturn attributeChristian Poveda
2022-09-22add `is_divergent` fieldChristian Poveda
2022-09-08fix clippy lintsChristian Poveda
2022-03-15Added support for `vectorcall` ABIDavid Cole
2021-12-07Remove fields never readMikuroXina
2021-10-27Fix warningsMikuroXina
2021-04-30Don't generate bindings for deleted member functions. (#2044)Martin Boehme
Closes #2044 Fixes #2043 See https://github.com/rust-lang/rust-bindgen/issues/2043 for details.
2021-04-27Translate types that were declared inside functions as opaque types.Patrick Walton
This fixes a panic with the following header: template<typename T> struct Foo {}; template<typename T> Foo<T> foo{}; void f() { struct Bar { Bar() {} }; foo<Bar>; } Because we don't parse the insides of function bodies, code like this could cause us to parse a type (here, `Bar`) that we didn't see in our initial pass, which can cause subtle problems. Closes #2036.
2020-08-24Optimized condition order, added regression testAudrius
2020-08-21Added constructor return type for wasm32 targetAudrius
2020-07-01Refine test for C++ operatorsDarren Kulp
2020-05-14ir: Fall back to get the cursors from the type if we find no param decls.Emilio Cobos Álvarez
It seems libclang sometimes doesn't expose the right paramdecl cursors. This should be reported upstream, but it's easy enough to workaround. It loses the parameter names which is a bit unfortunate but... Fixes #1778
2020-04-27Run `cargo fmt`Joshua Nelson
2020-04-27Run `cargo fix --edition`Joshua Nelson
2019-10-14function: Fix #[must_use] support in libclang 9+.Emilio Cobos Álvarez
2019-09-17Rustfmt.Emilio Cobos Álvarez
2019-05-21Update LinksAlex Touchet
2019-04-26Remove redundant imports.Emilio Cobos Álvarez
2019-03-21Unify derive logicJethro Beekman
2019-03-10fix issue #1535Porter Smith
2019-02-03Rework the way that argument types and names are found from function signatures.Porter Smith
This fixes the issue seen in #1500 where function pointers as a return type have their parameters incorrectly generated. This also fixes a broken test case, objc_property_fnptr, as its types are now generated correctly.
2019-02-03ir: Ignore constructors with bogus spellings.Emilio Cobos Álvarez
2018-12-14ir: Put function attribute detection under an opt-in flag.Emilio Cobos Álvarez
Given it was a considerable performance hit under some workloads. Closes #1465.
2018-11-30Update quote and proc-macro.Bastien Orivel
I give up on the doc comments. This is a rebase of #1334 keeping the formatting of the comments and using TokenStream::from_str instead because one can hope. Fixes #1407.
2018-11-27Add #[must_use] to functions annotated with __attribute__((warn_unused_result))Porter Smith
2018-11-06codegen: Make the mangling name check work in presence of ↵Emilio Cobos Álvarez
attribute(overloadable). Fixes #1350
2018-09-26A better fix for the calling convention madness.Emilio Cobos Álvarez
Seems like a better fix, which allows us to preserve typedefs properly, and also to find the calling convention. Fixes #1402.
2018-09-19Teach the blob code to generate i128 / u128 if available.Emilio Cobos Álvarez
This is very mechanical and boring, but needed.
2018-05-14ir: Fix "this" argument generation to build a pointer to const, not a const ↵Emilio Cobos Álvarez
pointer.
2018-04-03Revert "Revert "Bump quote to 0.4""Bastien Orivel
This reverts commit eb415c7a7cf8c72664dbfda5a614474cda5c185c.
2018-03-04Untry.Emilio Cobos Álvarez
Use the ? operator instead of try, and add some more uses of it on Option<> that were straight-forward.
2018-02-14Revert "Bump quote to 0.4"Nick Fitzgerald
This reverts commit 6899c275ee0ab0687ec66c490ddd1a76f8223513. The `proc_macro2` crate depends on rustc internal crates, which means that `bindgen` would need to be run under `rustup`. We can follow https://github.com/rust-lang/rust/issues/47931 to get updates on when this issue might be resolved and we can update `quote` again. Fixes #1248
2018-01-29ir: Choose the right mangling for destructors on all codepaths.Emilio Cobos Álvarez
Fixes #1133.
2018-01-23Bump quote to 0.4Bastien Orivel
2017-12-29Don't generate symbols for pure virtual functions.Emilio Cobos Álvarez
Fixes #1197.
2017-10-30Refactor derive_partialeq_or_partialord.Sergey Pepyakin
2017-10-24ir: Cleanup a bunch of constructorsEmilio Cobos Álvarez
To use the shorthand initialization syntax.
2017-10-24Store function linkage in the irJeff Muizelaar
This lets us capture 'static inline' functions in the ir and filter them later down the pipeline. This is the first step on the way to handling these functions better.
2017-10-10Add support for the thiscall ABILiran Ringel
2017-10-07Tell LLVM to not mangle names if they're already mangled through link_name ↵Liran Ringel
attribute
2017-10-03Derive partialeq "manually" when possibleSergey Pepyakin
Remove derive-partialeq-template-inst test. Add comments. Don't implement PartialEq for incomplete arrays Handle opaque bases and template instantiations Extract constrain_type. Extract `is whitelisted?` check Add failing partialeq-anonfield join for comps Fix: return insert if not whitelisted Delegate TypeRefs and alias to constrain_join. Delegate Template instantiations to constrain_join Add derive-partialeq-pointer.hpp test Update comment. Fix layout alignment larger that array limit Add missing test for derive-partialeq-anonfield.rs Clean Clean Fix typo in opaque-template-inst-member test Remove redudant stmt Add comment on can_supersede. Format impl_partialeq and leave a comment Extract requires_storage into it's own function. Clean
2017-10-02Replace `as_type_id_unchecked` calls with checked calls where possibleNick Fitzgerald
2017-10-02A bunch of parsing things should return TypeIdNick Fitzgerald
2017-10-02Make `TypeKind::{Alias,TemplateAlias,Array,Pointer,Reference}` use `TypeId`Nick Fitzgerald
This commit makes certain `TypeKind`s that can only reference other types use `TypeId` instead of `ItemId`.
2017-09-20Common method for whether function pointers can trivially derive traitsNick Fitzgerald
Again, this logic was getting copied all over the place, and it is nice to have a single canonical definition.