mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +00:00 
			
		
		
		
	Make log_header() use variadic templates.
				
					
				
			This commit is contained in:
		
							parent
							
								
									a8791a459e
								
							
						
					
					
						commit
						0b57b74fb0
					
				
					 3 changed files with 10 additions and 12 deletions
				
			
		|  | @ -217,7 +217,7 @@ void log_formatted_string(std::string_view format, std::string str) | ||||||
| 	logv_string(format, std::move(str)); | 	logv_string(format, std::move(str)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void logv_header(RTLIL::Design *design, const char *format, va_list ap) | void log_formatted_header(RTLIL::Design *design, std::string_view format, std::string str) | ||||||
| { | { | ||||||
| 	bool pop_errfile = false; | 	bool pop_errfile = false; | ||||||
| 
 | 
 | ||||||
|  | @ -236,7 +236,7 @@ static void logv_header(RTLIL::Design *design, const char *format, va_list ap) | ||||||
| 		header_id += stringf("%s%d", header_id.empty() ? "" : ".", c); | 		header_id += stringf("%s%d", header_id.empty() ? "" : ".", c); | ||||||
| 
 | 
 | ||||||
| 	log("%s. ", header_id.c_str()); | 	log("%s. ", header_id.c_str()); | ||||||
| 	logv(format, ap); | 	log_formatted_string(format, std::move(str)); | ||||||
| 	log_flush(); | 	log_flush(); | ||||||
| 
 | 
 | ||||||
| 	if (log_hdump_all) | 	if (log_hdump_all) | ||||||
|  | @ -425,14 +425,6 @@ void log_file_error(const string &filename, int lineno, | ||||||
| 	logv_file_error(filename, lineno, format, ap); | 	logv_file_error(filename, lineno, format, ap); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void log_header(RTLIL::Design *design, const char *format, ...) |  | ||||||
| { |  | ||||||
| 	va_list ap; |  | ||||||
| 	va_start(ap, format); |  | ||||||
| 	logv_header(design, format, ap); |  | ||||||
| 	va_end(ap); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void log_warning(const char *format, ...) | void log_warning(const char *format, ...) | ||||||
| { | { | ||||||
| 	va_list ap; | 	va_list ap; | ||||||
|  |  | ||||||
|  | @ -122,7 +122,6 @@ extern int log_debug_suppressed; | ||||||
| [[noreturn]] void logv_file_error(const string &filename, int lineno, const char *format, va_list ap); | [[noreturn]] void logv_file_error(const string &filename, int lineno, const char *format, va_list ap); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| void log_header(RTLIL::Design *design, const char *format, ...) YS_ATTRIBUTE(format(printf, 2, 3)); |  | ||||||
| void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | ||||||
| void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | ||||||
| 
 | 
 | ||||||
|  | @ -154,6 +153,13 @@ inline void log(FmtString<TypeIdentity<Args>...> fmt, const Args &... args) | ||||||
| 	log_formatted_string(fmt.format_string(), fmt.format(args...)); | 	log_formatted_string(fmt.format_string(), fmt.format(args...)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void log_formatted_header(RTLIL::Design *design, std::string_view format, std::string str); | ||||||
|  | template <typename... Args> | ||||||
|  | inline void log_header(RTLIL::Design *design, FmtString<TypeIdentity<Args>...> fmt, const Args &... args) | ||||||
|  | { | ||||||
|  | 	log_formatted_header(design, fmt.format_string(), fmt.format(args...)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static inline void log_suppressed() { | static inline void log_suppressed() { | ||||||
| 	if (log_debug_suppressed && !log_make_debug) { | 	if (log_debug_suppressed && !log_make_debug) { | ||||||
| 		log("<suppressed ~%d debug messages>\n", log_debug_suppressed); | 		log("<suppressed ~%d debug messages>\n", log_debug_suppressed); | ||||||
|  |  | ||||||
|  | @ -196,7 +196,7 @@ struct OptPass : public Pass { | ||||||
| 		design->sort(); | 		design->sort(); | ||||||
| 		design->check(); | 		design->check(); | ||||||
| 
 | 
 | ||||||
| 		log_header(design, fast_mode ? "Finished fast OPT passes.\n" : "Finished OPT passes. (There is nothing left to do.)\n"); | 		log_header(design, "Finished fast OPT passes.%s\n", fast_mode ? "" : " (There is nothing left to do.)"); | ||||||
| 		log_pop(); | 		log_pop(); | ||||||
| 	} | 	} | ||||||
| } OptPass; | } OptPass; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue