OSDN Git Service

TableGen: Change { } to only accept bits<n> entries when n == 1.
authorPete Cooper <peter_cooper@apple.com>
Thu, 7 Aug 2014 05:46:57 +0000 (05:46 +0000)
committerPete Cooper <peter_cooper@apple.com>
Thu, 7 Aug 2014 05:46:57 +0000 (05:46 +0000)
commitf5b7351124ed4a871112cfb63daa68bac22b2b28
tree5cf858133a8c518a20078295c136f62896addf33
parent3f2aee7e02a5ddbe173bcf02fbb007f0dc71dcf0
TableGen: Change { } to only accept bits<n> entries when n == 1.

Prior to this change, it was legal to do something like

  bits<2> opc = { 0, 1 };
  bits<2> opc2 = { 1, 0 };
  bits<2> a = { opc, opc2 };

This involved silently dropping bits from opc and opc2 which is very hard to debug.

Now the above test would be an error.  Having tested with an assert, none of LLVM/clang was relying on this behaviour.

Thanks to Adam Nemet for the above test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215083 91177308-0d34-0410-b5e6-96231b3b80d8
lib/TableGen/Record.cpp
test/TableGen/BitsInit.td [new file with mode: 0644]