Clang uses -fno-short-enum as default while gcc uses -fshort-enums for embedded targets

This has led to a problem in my project where I linked objects compiled with gcc and clang and it took some time to find out why.

Will it be worth syncing the behavior with gcc?

On some targets, -fshort-enums is the default; this is determined by the ABI.

If this is so, clang must enforce it, too?

For each target clang supports, there are a bunch of target-specific configuration bits. Whether -fshort-enums is on by default is one of those. The only way for us to know if the default is wrong for some particular target triple is if someone files a bug report.

Are you concerned about some specific target?