summaryrefslogtreecommitdiffstats
path: root/clang/utils/ABITest
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-01-29 07:36:46 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-01-29 07:36:46 +0000
commit676fdd81d5e98e88fe831bd241c95da4b7208d8f (patch)
tree164fb02a9e8feea9a33c56e86a6795637028dbd0 /clang/utils/ABITest
parent227e1a77ff53c141af3ed3921ecd5761ea089316 (diff)
downloadbcm5719-llvm-676fdd81d5e98e88fe831bd241c95da4b7208d8f.tar.gz
bcm5719-llvm-676fdd81d5e98e88fe831bd241c95da4b7208d8f.zip
ABITest: Fix test value generation for unions.
llvm-svn: 63286
Diffstat (limited to 'clang/utils/ABITest')
-rwxr-xr-xclang/utils/ABITest/ABITestGen.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/utils/ABITest/ABITestGen.py b/clang/utils/ABITest/ABITestGen.py
index 8f922d7e52f..5b9756b5450 100755
--- a/clang/utils/ABITest/ABITestGen.py
+++ b/clang/utils/ABITest/ABITestGen.py
@@ -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)
OpenPOWER on IntegriCloud