Skip to content

ee_u32 accessed with %d format specifier #35

@mysterymath

Description

@mysterymath

In core_main.c, the results of time_in_secs is printed using the %d format specifier, which handles arguments of type int.
However type secs_ret is type ee_u32, which is not int-sized on 16-bit platforms (for which I'm working on an LLVM port :) ).
I got lucky in that my platform is little endian, so the low order 16-bits that will be read by %d are the ones that I want, and there aren't any arguments after the problematic %d's.

Three ways off the top of my head to fix this:

  1. Cast to int before the format specifier.
  2. Use the C99 format specifier macros for uint32_t.
  3. Create an EEMBC-specific version of the above macro and add it to the port headers.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions