[llvm] r188873 - MC CFG: Remap enough for the inserted instruction.

David Blaikie dblaikie at gmail.com
Wed Aug 21 10:15:03 PDT 2013


Just to echo Chandler's sentiments (made in reply to r188872) &
provide some of my thoughts (which may or may not overlap with
Chandler's) on a few of these patches...

Consider my comments to this patch series as both review and
meta-review, in many cases it would've been better if the answers to
these questions had been obvious from the commits & code committed to
make it easier for people reading code & performing archaeology on the
commit history later.

On Wed, Aug 21, 2013 at 12:27 AM, Ahmed Bougacha
<ahmed.bougacha at gmail.com> wrote:
> Author: ab
> Date: Wed Aug 21 02:27:47 2013
> New Revision: 188873
>
> URL: http://llvm.org/viewvc/llvm-project?rev=188873&view=rev
> Log:
> MC CFG: Remap enough for the inserted instruction.
>
> Modified:
>     llvm/trunk/lib/MC/MCAtom.cpp
>
> Modified: llvm/trunk/lib/MC/MCAtom.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAtom.cpp?rev=188873&r1=188872&r2=188873&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCAtom.cpp (original)
> +++ llvm/trunk/lib/MC/MCAtom.cpp Wed Aug 21 02:27:47 2013
> @@ -72,8 +72,8 @@ MCDataAtom *MCDataAtom::split(uint64_t S
>  // MCTextAtom
>
>  void MCTextAtom::addInst(const MCInst &I, uint64_t Size) {
> -  if (NextInstAddress > End)
> -    remap(Begin, NextInstAddress);
> +  if (NextInstAddress + Size - 1 > End)
> +    remap(Begin, NextInstAddress + Size - 1);

It's not clear what this fix was for - is this a future-proofing
change? If so, I think it's sufficiently non-obvious that it might've
been better off going in with whatever change required it.
A fix to existing undefined behavior? Did we already have a test case
that was hitting UB because of this? Could we add one, even though it
wouldn't've necessarily failed before the change (if it would fail
under Valgrind or ASan/UBSan/etc that would be great)

>    Insts.push_back(MCDecodedInst(I, NextInstAddress, Size));
>    NextInstAddress += Size;
>  }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list