pinskia wrote:

Note GCC already treats `void*` as being compatiable with all other pointers 
and has since GCC 6 (when it started to disambiguates accesses to different 
pointers).  I don't think it is documented though.
Another example where clang/LLVM handles void pointers differently from GCC:
```
extern void abort(void);
int f(void *a, int **b, void *c)
{
  void **e = a;
  int d = **b;
  *e = c;
  return d + **b;
}
int main()
{
  int d = 1;
  int ff = 0;
  int *e = &d;
  if (f(&e, &e, &ff) != 1)
    abort();
}
```

https://github.com/llvm/llvm-project/pull/122116
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to