[patch] [llvm-gcc4] fix bootstrap failure

The attached patch fixes a bootstrap failure introduced by the use of
llvm_streams.

Best Regards,
Rafael

llvm-gcc.patch (1.19 KB)

The llvm_ostreams, which you take the address of go out of scope very
quickly, and are only stored by address in the bytecode writer, thus
the writers have a pointer to a stack allocated object they are to
write to. This crashes.

Andrew

The llvm_ostreams, which you take the address of go out of scope very
quickly, and are only stored by address in the bytecode writer, thus
the writers have a pointer to a stack allocated object they are to
write to. This crashes.

The attached version leaks :slight_smile:
It is a work around. If I understand correctly, the ostream wrapper is
also a temporary solution, so this might be acceptable.

Andrew

Thanks,
Rafael

llvm-gcc.patch (1.23 KB)

This patch crashes the built compiler.

Hmm, that looks like what I did in my tree :slight_smile:

Andrew

Hey guys,

Notice that the llvm_ostream doesn't delete the ostream that you pass
into it. If you want to make sure that it's deleted, I think you'll
want to pass in "true" to the WriteBytecodePass so that it'll delete
the llvm_ostream. This won't affect the AsmOutFile, which gets deleted
at the end of the function...

-bw

Actually, take a look at the current TOT for llvm-gcc4. Jim & I put a
patch in there yesterday that should make things work with
llvm_ostreams.

-bw