-
Notifications
You must be signed in to change notification settings - Fork 3k
callback - Add workaround for IAR issue with type information #2898
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
Conversation
In the IAR ide, implicitly generated structures based on function templates end up with missing type information. This has no effect on using the IAR compiler standalone, but when used through the ide the missing type information causes the ide to error. As a workaround, moved the function attributes generated for the Callback and Event classes into the class scope. This avoids the syntax that confuses IAR.
/morph export-build |
Result: ABORTEDYour command has finished executing! Here's what you wrote!
|
/morph export-build |
/morph test-nightly |
Result: FAILUREYour command has finished executing! Here's what you wrote!
|
/morph export-build |
Result: ABORTEDYour command has finished executing! Here's what you wrote!
|
uVision was hanging, had to kill the exporter test. Restarting now! /morph export-build |
Result: FAILUREYour command has finished executing! Here's what you wrote!
Outputmbed Build Number: 1043 Test failed! |
Result: FAILUREYour command has finished executing! Here's what you wrote!
|
Nightly test results look ok, same failures we're currently seeing on master. And export-build looks a lot better on IAR! Some targets are actually passing now 😄 Still some broken ones. Getting a lot of these errors though:
@geky Let me know if you need help parsing through all of the log output from the CI. uVision is all good though! |
Then why trying to fix the code ? Something has to be wrong with the exporters and some flags must not be propagated correctly. At the end, the IDE use the same compiler! |
@bridadan I have seen those errors with unsupported targets, because they are set to none. Can you check the regressions from previous runs? Sorry, I would but I am typing this on my phone. |
@pan- It's not a compile error, the error is an internal error of IAR:
If you have any ideas on this we're definitely open to suggestions 😄 |
My guess is that it is not a flags issue, but rather an interworkings issue with the ide and compiler. I suspect IAR has additional hooks to provide type-information from the compiler to the ide, and this relatively uncommon bit of C++ syntax causes the extra ligature to break. |
@sarahmarshy Good call, this PR gets the exporter build test back to the state it was in when this PR was merged: #2754. Any idea how we could just "skip" the targets if we know they will fail in IAR? (Note: that can be a separate PR) |
@bridadan Thanks for the clarification, did anyone contact IAR about this ? Are they mbed partners ? |
I don't think we've reached out to IAR, thought that'd be a good thing to do. Though I personally don't know how to start that process. I think either @theotherjimmy or @sarahmarshy might know? Either way we can always revert this change if we find the IAR issue. @sarahmarshy It looks like the only export build test that has ever had all IAR passing was from your open PR here: #2708 (specifically this CI run: http://10.118.12.43:8081/job/exporter_build_test/67/). This PR should come in first and then we should rerun PR #2708, correct? And then hopefully we'll have uVision and IAR passing? |
In the IAR ide, implicitly generated structures based on function templates end up with missing type information. This has no effect on using the IAR compiler standalone, but when used through the ide the missing type information causes the ide to error.
As a workaround, moved the function attributes generated for the Callback and Event classes into the class scope. This avoids the syntax that confuses IAR.
cc @pan-, @bridadan, @sarahmarshy