diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-08-15 06:48:40 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-08-15 06:48:40 -0700 |
commit | 91f6cdfef6af69b7fe9203ee4d501ab6e6f1a830 (patch) | |
tree | b749ff51dec39f145cc25a1df262de7412f5c45a /kernel/yosys.h | |
parent | 1551e14d2d688982f22f416a55a3212796a82421 (diff) | |
parent | 704686774e28b9b602874264df2c0f96841be05e (diff) | |
download | yosys-91f6cdfef6af69b7fe9203ee4d501ab6e6f1a830.tar.gz yosys-91f6cdfef6af69b7fe9203ee4d501ab6e6f1a830.tar.bz2 yosys-91f6cdfef6af69b7fe9203ee4d501ab6e6f1a830.zip |
Merge remote-tracking branch 'origin/master' into eddie/fix_1284_again
Diffstat (limited to 'kernel/yosys.h')
-rw-r--r-- | kernel/yosys.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/yosys.h b/kernel/yosys.h index 09e8139bb..49716ed52 100644 --- a/kernel/yosys.h +++ b/kernel/yosys.h @@ -305,8 +305,16 @@ RTLIL::IdString new_id(std::string file, int line, std::string func); #define NEW_ID \ YOSYS_NAMESPACE_PREFIX new_id(__FILE__, __LINE__, __FUNCTION__) -#define ID(_str) \ - ([]() { static YOSYS_NAMESPACE_PREFIX RTLIL::IdString _id(_str); return _id; })() +// Create a statically allocated IdString object, using for example ID(A) or ID($add). +// +// Recipe for Converting old code that is using conversion of strings like "\\A" and +// "$add" for creating IdStrings: Run below SED command on the .cc file and then use for +// example "meld foo.cc foo.cc.orig" to manually compile errors, if necessary. +// +// sed -i.orig -r 's/"\\\\([a-zA-Z0-9_]+)"/ID(\1)/g; s/"(\$[a-zA-Z0-9_]+)"/ID(\1)/g;' <filename> +// +#define ID(_id) ([]() { const char *p = "\\" #_id, *q = p[1] == '$' ? p+1 : p; \ + static const YOSYS_NAMESPACE_PREFIX RTLIL::IdString id(q); return id; })() RTLIL::Design *yosys_get_design(); std::string proc_self_dirname(); |