mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	Update assertion in compiler_addop_i()
In practice, bytecode instruction arguments are unsigned. Update the assertion to make it more explicit that argument must be greater or equal than 0. Rewrite also the comment.
This commit is contained in:
		
							parent
							
								
									f2192855dd
								
							
						
					
					
						commit
						2ad474ba5e
					
				
					 1 changed files with 8 additions and 4 deletions
				
			
		|  | @ -1163,10 +1163,14 @@ compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) | |||
|     struct instr *i; | ||||
|     int off; | ||||
| 
 | ||||
|     /* Integer arguments are limit to 16-bit. There is an extension for 32-bit
 | ||||
|        integer arguments. */ | ||||
|     assert((-2147483647-1) <= oparg); | ||||
|     assert(oparg <= 2147483647); | ||||
|     /* oparg value is unsigned, but a signed C int is usually used to store
 | ||||
|        it in the C code (like Python/ceval.c). | ||||
| 
 | ||||
|        Limit to 32-bit signed C int (rather than INT_MAX) for portability. | ||||
| 
 | ||||
|        The argument of a concrete bytecode instruction is limited to 16-bit. | ||||
|        EXTENDED_ARG is used for 32-bit arguments. */ | ||||
|     assert(0 <= oparg && oparg <= 2147483647); | ||||
| 
 | ||||
|     off = compiler_next_instr(c, c->u->u_curblock); | ||||
|     if (off < 0) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Victor Stinner
						Victor Stinner