Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shouldn't use uwtable on functions that aren't exported #4997

Closed
thestinger opened this issue Feb 17, 2013 · 3 comments
Closed

shouldn't use uwtable on functions that aren't exported #4997

thestinger opened this issue Feb 17, 2013 · 3 comments
Labels
A-codegen Area: Code generation I-slow Issue: Problems and improvements with respect to performance of generated code.

Comments

@thestinger
Copy link
Contributor

This is only useful to prevent the ABI from changing depending on whether a function is nounwind or not.

@thestinger
Copy link
Contributor Author

This is a bit trickier than I had thought... since functions can be passed a function that throws, or parametrized with a type that can throw in a method call.

@brson
Copy link
Contributor

brson commented May 1, 2013

I imagine that any frame that may end up unwinding needs uwtable. In Rust that is almost all frames. There may be some glues that don't need to unwind. I'm not sure how actionable this is. @thestinger do you still think there's something that can be done here?

@thestinger
Copy link
Contributor Author

@brson: no, I think it wasn't a great idea after all, closing :)

LLVM is able to figure out when it isn't necessary for the internal functions anyway afaict

bors added a commit to rust-lang-ci/rust that referenced this issue May 2, 2020
Do not trigger `let_and_return` lint on macros

Fixes rust-lang#4997

changelog: Fix false positive in `let_and_return`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen Area: Code generation I-slow Issue: Problems and improvements with respect to performance of generated code.
Projects
None yet
Development

No branches or pull requests

2 participants