mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Fix two instances of integer-assignment to string.
o In cover.cc, the int-result of mkstemps() was assigned to a string and silently interpreted as a single-character filename with a funny value. Fix with the intent: assign the filename. o in libparse.cc, an int was assigned to a string, but depending on visible constructors, this is ambiguous. Explicitly cast this to a char.
This commit is contained in:
		
							parent
							
								
									c8c1df23a0
								
							
						
					
					
						commit
						5e443a5d0d
					
				
					 2 changed files with 3 additions and 2 deletions
				
			
		|  | @ -105,7 +105,8 @@ struct CoverPass : public Pass { | ||||||
| 			#else | 			#else | ||||||
| 					char filename_buffer[4096]; | 					char filename_buffer[4096]; | ||||||
| 					snprintf(filename_buffer, 4096, "%s/yosys_cover_%d_XXXXXX.txt", filename.c_str(), getpid()); | 					snprintf(filename_buffer, 4096, "%s/yosys_cover_%d_XXXXXX.txt", filename.c_str(), getpid()); | ||||||
| 					filename = mkstemps(filename_buffer, 4); | 					mkstemps(filename_buffer, 4); | ||||||
|  | 					filename = filename_buffer; | ||||||
| 			#endif | 			#endif | ||||||
| 				} | 				} | ||||||
| 				FILE *f = fopen(filename.c_str(), open_mode); | 				FILE *f = fopen(filename.c_str(), open_mode); | ||||||
|  |  | ||||||
|  | @ -94,7 +94,7 @@ int LibertyParser::lexer(std::string &str) | ||||||
| 
 | 
 | ||||||
| 	// search for identifiers, numbers, plus or minus.
 | 	// search for identifiers, numbers, plus or minus.
 | ||||||
| 	if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') { | 	if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') { | ||||||
| 		str = c; | 		str = static_cast<char>(c); | ||||||
| 		while (1) { | 		while (1) { | ||||||
| 			c = f.get(); | 			c = f.get(); | ||||||
| 			if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') | 			if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '_' || c == '-' || c == '+' || c == '.') | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue