emmettneyman added inline comments.

================
Comment at: clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp:173
+  int s = getSize((char *) func_ptr);
+  memcpy(mem, func_ptr, s);
+}
----------------
morehouse wrote:
> emmettneyman wrote:
> > morehouse wrote:
> > > Why do we need to copy the function somewhere else?  Looks very 
> > > error-prone and unnecessary.  Also makes this patch larger than it needs 
> > > to be.
> > I'm copying the functions because otherwise, the generated machine code 
> > gets lost as soon as we exit that function's scope. So I'd have to run the 
> > functions inside `CreateJITFunction` if I don't copy it.
> > 
> > I thought about doing it this way: moving the code from `RunFuncsOnInputs` 
> > to the bottom of `CreateJITFunction` and then comparing the arrays after 
> > both calls to `CreateJITFunction` inside `HandleLLVM`. Do you think that 
> > would be cleaner?
> Or just increase the scope of `EE`.
When I tried to increase the scope of `EE` (and also `M` since `EntryFunc` 
lives inside the module), the program segfaulted immediately after exiting 
`CreateJITFunc`, I think while trying to deconstruct an object from the 
function. I'm not sure if there's a way around this since there are so many 
objects being created inside `CreateJITFunc`. But it's definitely possible I'm 
missing something with how `unique_ptr` work.


Repository:
  rC Clang

https://reviews.llvm.org/D50194



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

Reply via email to