diff options
| author | whitequark <whitequark@whitequark.org> | 2020-06-19 15:45:52 +0000 | 
|---|---|---|
| committer | whitequark <whitequark@whitequark.org> | 2020-06-19 15:48:58 +0000 | 
| commit | c8c3c7af87804a175b3dfc60dce191b03c9741fe (patch) | |
| tree | 1494e38f9c0ff81cf6eb3fd372b34cffc2e9e3c1 | |
| parent | 118e4caa37aa437974d9ec2ac65a4c6048cf6291 (diff) | |
| download | yosys-c8c3c7af87804a175b3dfc60dce191b03c9741fe.tar.gz yosys-c8c3c7af87804a175b3dfc60dce191b03c9741fe.tar.bz2 yosys-c8c3c7af87804a175b3dfc60dce191b03c9741fe.zip | |
Use [[maybe_unused]] instead of YS_ATTRIBUTE(unused).
[[maybe_unused]] is available since C++17, so this commit adds
a polyfill YS_MAYBE_UNUSED. Once we require C++17 we can drop it.
| -rw-r--r-- | kernel/yosys.h | 8 | ||||
| -rw-r--r-- | passes/pmgen/pmgen.py | 20 | 
2 files changed, 18 insertions, 10 deletions
| diff --git a/kernel/yosys.h b/kernel/yosys.h index b9b6b24b1..f1646d6bc 100644 --- a/kernel/yosys.h +++ b/kernel/yosys.h @@ -145,6 +145,14 @@ extern Tcl_Obj *Tcl_ObjSetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *p  #endif  #if __cplusplus >= 201703L +#  define YS_MAYBE_UNUSED [[maybe_unused]]; +#elif defined(__GNUC__) || defined(__clang__) +#  define YS_MAYBE_UNUSED __attribute__((__unused__)) +#else +#  define YS_MAYBE_UNUSED +#endif + +#if __cplusplus >= 201703L  #  define YS_FALLTHROUGH [[fallthrough]];  #elif defined(__clang__)  #  define YS_FALLTHROUGH [[clang::fallthrough]]; diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py index df0ffaff2..592a26fa6 100644 --- a/passes/pmgen/pmgen.py +++ b/passes/pmgen/pmgen.py @@ -589,7 +589,7 @@ with open(outfile, "w") as f:          if block["type"] in ("match", "code"):              print("  // {}".format(block["src"]), file=f) -        print("  void block_{}(int recursion YS_ATTRIBUTE(unused)) {{".format(index), file=f) +        print("  void block_{}(int recursion YS_MAYBE_UNUSED) {{".format(index), file=f)          current_pattern, current_subpattern = block["pattern"]          if block["type"] == "final": @@ -636,17 +636,17 @@ with open(outfile, "w") as f:          for s in sorted(const_st):              t = state_types[current_pattern][s]              if t.endswith("*"): -                print("    {} const &{} YS_ATTRIBUTE(unused) = st_{}.{};".format(t, s, current_pattern, s), file=f) +                print("    {} const &{} YS_MAYBE_UNUSED = st_{}.{};".format(t, s, current_pattern, s), file=f)              else: -                print("    const {} &{} YS_ATTRIBUTE(unused) = st_{}.{};".format(t, s, current_pattern, s), file=f) +                print("    const {} &{} YS_MAYBE_UNUSED = st_{}.{};".format(t, s, current_pattern, s), file=f)          for s in sorted(nonconst_st):              t = state_types[current_pattern][s] -            print("    {} &{} YS_ATTRIBUTE(unused) = st_{}.{};".format(t, s, current_pattern, s), file=f) +            print("    {} &{} YS_MAYBE_UNUSED = st_{}.{};".format(t, s, current_pattern, s), file=f)          for u in sorted(udata_types[current_pattern].keys()):              t = udata_types[current_pattern][u] -            print("    {} &{} YS_ATTRIBUTE(unused) = ud_{}.{};".format(t, u, current_pattern, u), file=f) +            print("    {} &{} YS_MAYBE_UNUSED = ud_{}.{};".format(t, u, current_pattern, u), file=f)          if len(restore_st):              print("", file=f) @@ -676,7 +676,7 @@ with open(outfile, "w") as f:              print("", file=f)              print("rollback_label:", file=f) -            print("    YS_ATTRIBUTE(unused);", file=f) +            print("    YS_MAYBE_UNUSED;", file=f)              if len(block["fcode"]):                  print("#define accept do { accept_cnt++; on_accept(); } while(0)", file=f) @@ -684,7 +684,7 @@ with open(outfile, "w") as f:                  for line in block["fcode"]:                      print("  " + line, file=f)                  print("finish_label:", file=f) -                print("    YS_ATTRIBUTE(unused);", file=f) +                print("    YS_MAYBE_UNUSED;", file=f)                  print("#undef accept", file=f)                  print("#undef finish", file=f) @@ -733,13 +733,13 @@ with open(outfile, "w") as f:              valueidx = 1              for item in block["setup"]:                  if item[0] == "slice": -                    print("        const int &{} YS_ATTRIBUTE(unused) = std::get<{}>(cells[_pmg_idx]);".format(item[1], valueidx), file=f) +                    print("        const int &{} YS_MAYBE_UNUSED = std::get<{}>(cells[_pmg_idx]);".format(item[1], valueidx), file=f)                      valueidx += 1                  if item[0] == "choice": -                    print("        const {} &{} YS_ATTRIBUTE(unused) = std::get<{}>(cells[_pmg_idx]);".format(item[1], item[2], valueidx), file=f) +                    print("        const {} &{} YS_MAYBE_UNUSED = std::get<{}>(cells[_pmg_idx]);".format(item[1], item[2], valueidx), file=f)                      valueidx += 1                  if item[0] == "define": -                    print("        const {} &{} YS_ATTRIBUTE(unused) = std::get<{}>(cells[_pmg_idx]);".format(item[1], item[2], valueidx), file=f) +                    print("        const {} &{} YS_MAYBE_UNUSED = std::get<{}>(cells[_pmg_idx]);".format(item[1], item[2], valueidx), file=f)                      valueidx += 1              print("        if (blacklist_cells.count({})) continue;".format(block["cell"]), file=f)              for expr in block["filter"]: | 
