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

Add support for building with IAR #276

Draft
wants to merge 12 commits into
base: develop
Choose a base branch
from

Conversation

bavison
Copy link

@bavison bavison commented Sep 13, 2022

Here is the first tranche of changes required in order to build the examples with the IAR toolchain. All these commits are restricted to C code changes (bar one where C is embedded in a pio file) - there are a couple more commits that will follow later once I have confirmation that related changes to CMake have been accepted.

I've grouped the changes according to the compiler diagnostic generated, with those generating build errors first and warnings later in the sequence. Otherwise the order is arbitrary.

Ben Avison added 12 commits September 13, 2022 09:25
IAR generates errors Pe144 'a value of type "int32_t (*)(int32_t)" cannot
be used to initialize an entity of type "void *" and Pe513 'a value of
type "int32_t (*)(int32_t)" cannot be assigned to an entity of type
"void *"'.

Also, when citing the name of a specific function, there's no need to use
the '&' operator before the symbol - it's already typed as a function
pointer.
IAR generates error Pe020 'identifier is undefined'.
When building with IAR, these macros expand to void pointers, so without an
explicit cast, IAR generates error Pe132 'expression must have
pointer-to-struct-or-union type but it has type "void *".
IAR generates warning Pe111 'statement is unreachable'. GCC doesn't
complain about their absence, if they are removed.
IAR generates warning Pe546 'transfer of control bypasses initialization
of variable'.
IAR generates warning Pa082 'undefined behavior: the order of volatile
accesses is undefined in this statement'.
IAR generates warning Pe068 'integer conversion resulted in a change of
sign'.
IAR generates warning Pe192 'unrecognized character escape sequence'.
IAR generates warning Pa093 'implicit conversion from floating point to
integer'.
IAR generates warning Pe161 'unrecognized #pragma'.
IAR generates warning Pe188 'enumerated type mixed with another type'.
IAR generates warning Pe177 'function was declared but never referenced'.
@kilograham kilograham marked this pull request as draft July 4, 2023 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant