mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +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)); | ||||
| } | ||||
| 
 | ||||
| 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; | ||||
| 
 | ||||
|  | @ -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); | ||||
| 
 | ||||
| 	log("%s. ", header_id.c_str()); | ||||
| 	logv(format, ap); | ||||
| 	log_formatted_string(format, std::move(str)); | ||||
| 	log_flush(); | ||||
| 
 | ||||
| 	if (log_hdump_all) | ||||
|  | @ -425,14 +425,6 @@ void log_file_error(const string &filename, int lineno, | |||
| 	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, ...) | ||||
| { | ||||
| 	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); | ||||
| 
 | ||||
| 
 | ||||
| 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_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...)); | ||||
| } | ||||
| 
 | ||||
| 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() { | ||||
| 	if (log_debug_suppressed && !log_make_debug) { | ||||
| 		log("<suppressed ~%d debug messages>\n", log_debug_suppressed); | ||||
|  |  | |||
|  | @ -196,7 +196,7 @@ struct OptPass : public Pass { | |||
| 		design->sort(); | ||||
| 		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(); | ||||
| 	} | ||||
| } OptPass; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue