]> granicus.if.org Git - clang/commitdiff
ABITest: Fix test value generation for unions.
authorDaniel Dunbar <daniel@zuster.org>
Thu, 29 Jan 2009 07:36:46 +0000 (07:36 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 29 Jan 2009 07:36:46 +0000 (07:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63286 91177308-0d34-0410-b5e6-96231b3b80d8

utils/ABITest/ABITestGen.py

index 8f922d7e52f30a4fa40c79950a3446f5bfab73af..5b9756b545090630a85daee554f8c42e8ae6bbf4 100755 (executable)
@@ -193,9 +193,16 @@ class TypePrinter:
                 yield '(%s) -1'%(t.name,)
                 yield '(%s) 1'%(t.name,)
         elif isinstance(t, RecordType):
-            fieldValues = [list(self.getTestValues(f)) for f in t.fields]
             if not t.fields:
                 yield '{ }'
+                return
+            # FIXME: Use designated initializers to access non-first
+            # fields of unions.
+            if t.isUnion:
+                for v in self.getTestValues(t.fields[0]):
+                    yield '{ %s }' % v
+                return
+            fieldValues = [list(self.getTestValues(f)) for f in t.fields]
             for i,values in enumerate(fieldValues):
                 for v in values:
                     elements = map(random.choice,fieldValues)