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

Avoid init class definition for compatibility #14603

Merged
merged 2 commits into from
May 3, 2021

Conversation

paul-szczepanek-arm
Copy link
Member

Summary of changes

Avoid compatibility problems by not initialising the member variable in class definition. As reported here:
#14511

Impact of changes

Migration actions required

Documentation

none


Pull request type

[x] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[] Feature update (New feature / Functionality change / New API)
[] Major update (Breaking change E.g. Return code change / API behaviour change)

Test results

[] No Tests required for this change (E.g docs only update)
[x] Covered by existing mbed-os tests (Greentea or Unittest)
[] Tests / results supplied as part of this PR

Reviewers


Copy link
Collaborator

@jeromecoutant jeromecoutant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ARM: no more warning
  • IAR: compilation is OK

Thx!

@ciarmcom ciarmcom added the release-type: patch Indentifies a PR as containing just a patch label Apr 28, 2021
@ciarmcom ciarmcom requested a review from a team April 28, 2021 16:00
@ciarmcom
Copy link
Member

@paul-szczepanek-arm, thank you for your changes.
@ARMmbed/mbed-os-maintainers please review.

@kjbracey
Copy link
Contributor

kjbracey commented Apr 29, 2021

It's worth noting that these bitfields are a bad idea in terms of code size. I've stripped a lot of similar ones on a customer branch. You're not gaining enough (or anything) in RAM to justify the ROM increase.

By inspection, I don't think this particular case saves RAM at all over just 2 bools.

I'd reserve bitfields for classes where you really do have a significant number of instances of the class, and a significant number of bits.

(And ironically bitfields are the least ROM efficient on the most constrained systems - ARMv6-M and ARMv8-M baseline don't have the specialised bitfield access instructions, so they particularly bloat code on an M0).

@mergify mergify bot added needs: CI and removed needs: review labels Apr 30, 2021
@0xc0170
Copy link
Contributor

0xc0170 commented Apr 30, 2021

CI s tarted

@mbed-ci
Copy link

mbed-ci commented Apr 30, 2021

Jenkins CI Test : ✔️ SUCCESS

Build Number: 1 | 🔒 Jenkins CI Job | 🌐 Logs & Artifacts

CLICK for Detailed Summary

jobs Status
jenkins-ci/mbed-os-ci_unittests ✔️
jenkins-ci/mbed-os-ci_cmake-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-ARM ✔️
jenkins-ci/mbed-os-ci_cmake-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_cmake-cloud-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_cmake-cloud-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_greentea-test ✔️

@0xc0170 0xc0170 merged commit 31d638d into ARMmbed:master May 3, 2021
@mergify mergify bot removed the ready for merge label May 3, 2021
@mbedmain mbedmain removed release-type: patch Indentifies a PR as containing just a patch Release-pending labels May 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants