iana added inline comments.

================
Comment at: clang/lib/Headers/stdint.h:99-100
 typedef __UINT64_TYPE__ uint64_t;
+# undef __int_least64_t
 # define __int_least64_t int64_t
+# undef __uint_least64_t
----------------
iana wrote:
> What are you seeing that's defining `__int_least64_t` and all these other 
> ones by the time you get here? It's surprising to me that so much 
> preprocessor state exists when you hit this point considering that this file 
> doesn't include anything else. Is this some kind of artifact with how the OS 
> module map is making a module for stdint.h?
Oh I see, it's not these ones that are the problem, it's the redefinitions 
below. I guess it's a bigger change, but I wonder if flipping the order would 
be cleaner? e.g.
```
#ifdef __INT32_TYPE__
# define __int_least32_t int32_t
#endif

#ifdef __INT64_TYPE__
# ifndef __int_least32_t
#  define __int_least32_t int64_t
# endif
#endif
```

I guess it's an extra line per type doing it that way, but maybe it's more 
obvious? (Maybe I just don't do a lot of preprocessor programming, but `#undef` 
feels like a code smell to me)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130800

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to