Fix yet another memory leak found by the vg-leak bot. Folks (including
authorChandler Carruth <chandlerc@gmail.com>
Sat, 27 Jul 2013 11:23:08 +0000 (11:23 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 27 Jul 2013 11:23:08 +0000 (11:23 +0000)
commit6c54b3dfb4ac80418a9e9ee11e5cc1702e9694e6
tree742d5f966b878d123de0de4ed51dfaa33509d6a1
parent05497cc965b59dff8a8170c5cbbcef3dff251262
Fix yet another memory leak found by the vg-leak bot. Folks (including
me) should start watching this bot more as its catching lots of bugs.

The fix here is to not construct the global if we aren't going to need
it. That's cheaper anyways, and globals have highly predictable types in
practice. I've added an assert to catch skew between our manual testing
of the type and the actual type just for paranoia's sake.

Note that this pattern is actually fine in most globals because when you
build a global with a module it automatically is moved to be owned by
that module. But here, we're in isel and don't really want to do that.
The solution of not creating a global is simpler anyways.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187302 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMFastISel.cpp