mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	sv: fix up end label checking
- disallow [gen]blocks with an end label but not begin label - check validity of module end label - fix memory leak of package name and end label - fix memory leak of module end label
This commit is contained in:
		
							parent
							
								
									092f0cb01e
								
							
						
					
					
						commit
						f2c2d73f36
					
				
					 7 changed files with 98 additions and 7 deletions
				
			
		
							
								
								
									
										9
									
								
								tests/verilog/block_end_label_only.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/verilog/block_end_label_only.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| logger -expect error "Begin label missing where end label \(incorrect_name\) was given\." 1 | ||||
| read_verilog -sv <<EOF | ||||
| module top; | ||||
| initial | ||||
|     begin | ||||
|         $display("HI"); | ||||
|     end : incorrect_name | ||||
| endmodule | ||||
| EOF | ||||
							
								
								
									
										9
									
								
								tests/verilog/block_end_label_wrong.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/verilog/block_end_label_wrong.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| logger -expect error "Begin label \(correct_name\) and end label \(incorrect_name\) don't match\." 1 | ||||
| read_verilog -sv <<EOF | ||||
| module top; | ||||
| initial | ||||
|     begin : correct_name | ||||
|         $display("HI"); | ||||
|     end : incorrect_name | ||||
| endmodule | ||||
| EOF | ||||
							
								
								
									
										9
									
								
								tests/verilog/gen_block_end_label_only.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/verilog/gen_block_end_label_only.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| logger -expect error "Begin label missing where end label \(incorrect_name\) was given\." 1 | ||||
| read_verilog -sv <<EOF | ||||
| module top; | ||||
| if (1) | ||||
|     begin | ||||
|         initial $display("HI"); | ||||
|     end : incorrect_name | ||||
| endmodule | ||||
| EOF | ||||
							
								
								
									
										9
									
								
								tests/verilog/gen_block_end_label_wrong.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/verilog/gen_block_end_label_wrong.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| logger -expect error "Begin label \(correct_name\) and end label \(incorrect_name\) don't match\." 1 | ||||
| read_verilog -sv <<EOF | ||||
| module top; | ||||
| if (1) | ||||
|     begin : correct_name | ||||
|         initial $display("HI"); | ||||
|     end : incorrect_name | ||||
| endmodule | ||||
| EOF | ||||
							
								
								
									
										15
									
								
								tests/verilog/module_end_label.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								tests/verilog/module_end_label.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| logger -expect-no-warnings | ||||
| read_verilog -sv <<EOF | ||||
| module correct_name; | ||||
| localparam X = 1; | ||||
| endmodule : correct_name | ||||
| EOF | ||||
| 
 | ||||
| design -reset | ||||
| 
 | ||||
| logger -expect error "Module name \(correct_name\) and end label \(incorrect_name\) don't match\." 1 | ||||
| read_verilog -sv <<EOF | ||||
| module correct_name; | ||||
| localparam X = 1; | ||||
| endmodule : incorrect_name | ||||
| EOF | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue