dexonsmith added a comment.

Hmm... presumably, this test should pass:

  $ ./bin/clang -nostdinc -isystem ./lib/clang/5.0.0/include -std=c++1z 
-fsyntax-only t.cpp
  t.cpp:3:1: error: static_assert failed
  static_assert(__is_same(intptr_t, __INTPTR_TYPE__));
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  t.cpp:4:1: error: static_assert failed
  static_assert(__is_same(uintptr_t, __UINTPTR_TYPE__));
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2 errors generated.
  $ cat t.cpp 
  #include <stdint.h>
  
  static_assert(__is_same(intptr_t, __INTPTR_TYPE__));
  static_assert(__is_same(uintptr_t, __UINTPTR_TYPE__));

Discovered that it fails (at least for `-triple x86_64-apple-macosx10.12.0`) 
while writing tests for an improved patch that covers SIZE_MAX, 
PTRDIFF_MIN/MAX, UINTPTR_MAX, and INTPTR_MAX, since I was trying:

  static_assert(__is_same(__typeof__(INTPTR_MIN), intptr_t));
  static_assert(__is_same(__typeof__(INTPTR_MAX), intptr_t));
  static_assert(__is_same(__typeof__(UINTPTR_MAX), uintptr_t));
  static_assert(__is_same(__typeof__(PTRDIFF_MIN), ptrdiff_t));
  static_assert(__is_same(__typeof__(PTRDIFF_MAX), ptrdiff_t));
  static_assert(__is_same(__typeof__(SIZE_MAX), size_t));

and the first three assertions all failed.

Is `__INTPTR_TYPE__` correct, or is `intptr_t`?  Is it safe to fix the one 
that's wrong?


https://reviews.llvm.org/D31856



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

Reply via email to