ProcessFiles invokes the cgo preprocessor on bp.CgoFiles, parses the output and returns the resulting ASTs.
Run invokes the cgo preprocessor on bp.CgoFiles and returns two lists of files: the resulting processed files (in temporary directory tmpdir) and the corresponding names of the unprocessed files.
Run is adapted from (*builder).cgo in $GOROOT/src/cmd/go/build.go, but these features are unsupported: Objective C, CGOPKGPATH, CGO_FLAGS.
If useabs is set to true, absolute paths of the bp.CgoFiles will be passed in to the cgo preprocessor. This in turn will set the // line comments referring to those files to use absolute paths. This is needed for go/packages using the legacy go list support so it is able to find the original files.