mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Create RTLIL::OwningIdString and use it in a few places
This commit is contained in:
		
							parent
							
								
									2ca7b2f7d7
								
							
						
					
					
						commit
						b3f79ed8e7
					
				
					 2 changed files with 13 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -42,7 +42,7 @@ std::vector<uint32_t> RTLIL::IdString::global_refcount_storage_;
 | 
			
		|||
std::vector<int> RTLIL::IdString::global_free_idx_list_;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define X(_id) const RTLIL::IdString RTLIL::IDInternal::_id(RTLIL::StaticId::_id);
 | 
			
		||||
#define X(_id) const RTLIL::OwningIdString RTLIL::IDInternal::_id(RTLIL::StaticId::_id);
 | 
			
		||||
#include "kernel/constids.inc"
 | 
			
		||||
#undef X
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,6 +121,7 @@ namespace RTLIL
 | 
			
		|||
	struct Binding;
 | 
			
		||||
	struct IdString;
 | 
			
		||||
	struct StaticIdString;
 | 
			
		||||
	struct OwningIdString;
 | 
			
		||||
 | 
			
		||||
	typedef std::pair<SigSpec, SigSpec> SigSig;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -459,6 +460,16 @@ public:
 | 
			
		|||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct RTLIL::OwningIdString : public RTLIL::IdString {
 | 
			
		||||
	inline OwningIdString() { }
 | 
			
		||||
	inline OwningIdString(const char *str) : IdString(str) { }
 | 
			
		||||
	inline OwningIdString(const IdString &str) : IdString(str) { }
 | 
			
		||||
	inline OwningIdString(IdString &&str) : IdString(str) { }
 | 
			
		||||
	inline OwningIdString(const std::string &str) : IdString(str) { }
 | 
			
		||||
	inline OwningIdString(std::string_view str) : IdString(str) { }
 | 
			
		||||
	inline OwningIdString(StaticId id) : IdString(id) { }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
namespace hashlib {
 | 
			
		||||
	template <>
 | 
			
		||||
	struct hash_ops<RTLIL::IdString> {
 | 
			
		||||
| 
						 | 
				
			
			@ -493,7 +504,7 @@ inline bool RTLIL::IdString::operator!=(const RTLIL::StaticIdString &rhs) const
 | 
			
		|||
 | 
			
		||||
namespace RTLIL {
 | 
			
		||||
	namespace IDInternal {
 | 
			
		||||
#define X(_id) extern const IdString _id;
 | 
			
		||||
#define X(_id) extern const OwningIdString _id;
 | 
			
		||||
#include "kernel/constids.inc"
 | 
			
		||||
#undef X
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue