[cfe-dev] Non-native endianness support in Clang

Guy Benyei via cfe-dev cfe-dev at lists.llvm.org
Mon Aug 26 07:18:45 PDT 2019


Hello,
I'd like to implement the gnu attribute "scalar_storage_order" to mark structs with non-native endianness. My rational is working on network protocols over little endian architecture (for instance: RiscV).

An old bug is open on this issue here:
https://bugs.llvm.org/show_bug.cgi?id=35293

I'd like to discuss the possible ways to implement this.

The GCC implementation is pretty complicated, touching almost everything, modifying optimizations, etc...:
https://github.com/gcc-mirror/gcc/commit/292237f3c109f2e0d2752ad1e73181689f7d0d53

I think, it would be better, to implement this attribute in the frontend only, adding the required byte-swaps early.

Any thoughts, ideas, objections?

Thanks
          Guy Benyei	



More information about the cfe-dev mailing list