danielmarjamaki added a comment. In https://reviews.llvm.org/D31650#717691, @NoQ wrote:
> Is freeing function pointers always undefined? I guess not.. however I don't personally see why it would be useful to allocate function pointers with malloc. > I wonder what happens if we take some JIT-enabled javascript engine, maybe > with some on-stack replacement of theirs, it may `malloc()` a memory and use > it as a function, and then eventually it'd need to free it by design. > However, because we're analyzing a small part of the program, we may fail to > see in the analyzer that the symbolic pointer originally comes from > `malloc()`. Would such rare but important users be able to avoid/suppress the > warning? Maybe when writing JIT there is some usecase, I don't know. The code could be rewritten like: void *malloc(unsigned long); void free(void*); typedef void (*fnptr)(int); void allocatedFunctionPointer() { void *p = malloc(sizeof(fnptr)); fnptr p2 = (fnptr)p; free(p); } no warning is written about this code. Repository: rL LLVM https://reviews.llvm.org/D31650 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits