forked from OSchip/llvm-project
				
			Properly sign extend sdata2/4 in unwinder. Patch by Patrick Wildt
llvm-svn: 206122
This commit is contained in:
		
							parent
							
								
									74ebf58742
								
							
						
					
					
						commit
						0f64d66304
					
				| 
						 | 
					@ -196,12 +196,14 @@ inline LocalAddressSpace::pint_t LocalAddressSpace::getEncodedP(pint_t &addr,
 | 
				
			||||||
    result = (pint_t)getSLEB128(addr, end);
 | 
					    result = (pint_t)getSLEB128(addr, end);
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case DW_EH_PE_sdata2:
 | 
					  case DW_EH_PE_sdata2:
 | 
				
			||||||
    result = (uint16_t)get16(addr);
 | 
					    // Sign extend from signed 16-bit value.
 | 
				
			||||||
 | 
					    result = (int16_t)get16(addr);
 | 
				
			||||||
    p += 2;
 | 
					    p += 2;
 | 
				
			||||||
    addr = (pint_t) p;
 | 
					    addr = (pint_t) p;
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case DW_EH_PE_sdata4:
 | 
					  case DW_EH_PE_sdata4:
 | 
				
			||||||
    result = (uint32_t)get32(addr);
 | 
					    // Sign extend from signed 32-bit value.
 | 
				
			||||||
 | 
					    result = (int32_t)get32(addr);
 | 
				
			||||||
    p += 4;
 | 
					    p += 4;
 | 
				
			||||||
    addr = (pint_t) p;
 | 
					    addr = (pint_t) p;
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue