[PATCH] D100701: [clang][AVR] Redefine some types to be compatible with avr-gcc

Eli Friedman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 14 11:07:38 PDT 2021


efriedma added inline comments.


================
Comment at: clang/lib/Basic/Targets/AVR.cpp:313
+  Builder.defineMacro("__UINT16_TYPE__", "unsigned int");
+  Builder.defineMacro("__INT16_TYPE__", "int");
 
----------------
benshi001 wrote:
> efriedma wrote:
> > Redefining `__INT16_TYPE__` like this is unusual.  The macro is normally defined in InitPreprocessor.cpp; if the logic there is wrong, I'd prefer to fix it there.
> > 
> > For specific types int16_t and uint16_t, I'm not sure if anything inside the compiler actually uses them at the moment, but I'd prefer to encode the type in the TargetInfo, along the lines of getInt64Type(), in case we need these types elsewhere in the future.
> Making changes to InitPreprocessor.cpp will affect all targets, and I not familar with other targets. Actually AVR is so special that it defines  `__INT16_TYPE__` to `int`.
> Making changes to InitPreprocessor.cpp will affect all targets, and I not familar with other targets.

That shouldn't be a problem as long as you have an appropriate reviewer; I volunteer. :)

You should be able to use getInt64Type() as a model for the necessary changes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100701/new/

https://reviews.llvm.org/D100701



More information about the cfe-commits mailing list