[llvm-commits] [PATCH] Fix for bug in exception table allocation
Jim Grosbach
grosbach at apple.com
Tue Jan 8 14:52:59 PST 2013
Looks good to me, with a couple nits:
+ virtual RecordingJITMemoryManager* CreateMemoryManager() {
The '*' should bind to the identifier, not the type. The function name should start with lower case. There's a few other instances in the patch of the former. Please double-check.
Thanks!
-Jim
On Jan 8, 2013, at 2:43 PM, Michael Muller <mmuller at google.com> wrote:
>
> New patch attached, incorporates Misha's comments and current trunk.
>
>
> On Fri, Jan 4, 2013 at 7:44 PM, Misha Brukman <brukman at gmail.com> wrote:
> On Wed, Dec 19, 2012 at 1:55 PM, Michael Muller <mmuller at enduden.com> wrote:
> See http://llvm.org/bugs/show_bug.cgi?id=13678 for more history.
>
> See also:
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052766.html
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120910/150422.html
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120917/150801.html
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056829.html
>
> When you run out of space writing to a buffer, the buffer management code
> simply stops writing at the end of the buffer. It is the responsibility of
> the caller to verify that it has stayed in bounds and perform a retry with
> a larger memory estimate if not. The function writing code does this, but
> the exception table code following it does not. The end result is that
> exception table pointers can get registered pointing to invalid data, causing
> seg-faults when an exception is thrown.
>
> Minor drive-by style comments (I wish there were a web UI for entering these in context):
> s/;;/;/
> ASSERT_TRUE(actual == expected) --> ASSERT_EQ(expected, actual)
> add space around binary operators (-, *, etc.), e.g.:
> + ActualSize = (CurBufferPtr-BufferBegin)*2;
>
> I'm sure I copied that from somewhere, but looking at the file now I see nothing resembling such formatting. Fixed.
>
> fix arg alignment of "ActualSize" here:
> + while (true) {
> + BufferBegin = CurBufferPtr = MemMgr->startExceptionTable(F.getFunction(),
> + ActualSize);
>
> Done.
>
> Misha
>
>
>
> --
> Michael Muller
> Ym9yZWQ/
> <ExceptionTableOverflowFix-v5.patch>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130108/04e366b0/attachment.html>
More information about the llvm-commits
mailing list