sbc100 added a comment.

I'm running into an issue with an internal codebase that assumes that size_t is 
equivalent to either int32_t or int64_t which this change invalidates.

After this change we have:  
size_t -> long
int32_t -> int
int64_t -> ling long int.

e.g.:

  #include <inttypes.h>
  #include <stdlib.h>
  
  int func(int32_t* f) {
    return 1;
  }
  
  int func(int64_t* f) {
    return 2;
  }
  
  int main() {
    size_t a = 0 ;
    return func(&a);
  }

This generates the following error after this change:

  ./bin/clang --target=wasm32 -c ./test.cpp 
  ./test.cpp:14:10: error: no matching function for call to 'func'
    return func(&a);
           ^~~~
  ./test.cpp:4:5: note: candidate function not viable: no known conversion from 
'size_t *' (aka 'unsigned long *') to 'int32_t *'
        (aka 'int *') for 1st argument
  int func(int32_t* f) {
      ^
  ./test.cpp:8:5: note: candidate function not viable: no known conversion from 
'size_t *' (aka 'unsigned long *') to 'int64_t *'
        (aka 'long long *') for 1st argument
  int func(int64_t* f) {
      ^
  1 error generated.


Repository:
  rC Clang

https://reviews.llvm.org/D40526



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

Reply via email to