Merge pull request #1510 from pumbor/master

handle anonymous unions to fix #1080
This commit is contained in:
N. Engelhardt 2020-01-29 15:21:28 +01:00 committed by GitHub
commit 177a7cb23e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 0 deletions

View File

@ -1935,6 +1935,19 @@ def parse_header(source):
line = source_text[i].replace("YOSYS_NAMESPACE_BEGIN", " namespace YOSYS_NAMESPACE{").replace("YOSYS_NAMESPACE_END"," }")
ugly_line = unpretty_string(line)
# for anonymous unions, ignore union enclosure by skipping start line and replacing end line with new line
if 'union {' in line:
j = i+1
while j < len(source_text):
union_line = source_text[j]
if '};' in union_line:
source_text[j] = '\n'
break
j += 1
if j != len(source_text):
i += 1
continue
if str.startswith(ugly_line, "namespace "):# and ugly_line.find("std") == -1 and ugly_line.find("__") == -1:
namespace_name = ugly_line[10:].replace("{","").strip()
namespaces.append((namespace_name, ugly_line.count("{")))