Bug 240349

Summary: Improve disassembler output
Product: [Eclipse Project] JDT Reporter: Olivier Thomann <Olivier_Thomann>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: philippe_mulet
Version: 3.4   
Target Milestone: 3.5 M1   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Proposed fix + updated regression tests none

Description Olivier Thomann CLA 2008-07-10 11:15:16 EDT
When synthetic arguments are used or the code is compiled without local variable table, the disassembler doesn't specify what local is loaded on the stack.

For example, we display:
// Method descriptor #21 (IIIIDDJI)V
  // Stack: 5, Locals: 12
  public void foo(int arg0, int arg1, int arg2, int arg3, double arg4, double arg5, long arg6, int arg7);
     0  getstatic System.out : PrintStream [22]
     3  lload 9
     5  iload 11
     7  i2l
     8  ladd
     9  invokevirtual PrintStream.println(long) : void [28]
    12  return

instead of:
// Method descriptor #21 (IIIIDDJI)V
  // Stack: 5, Locals: 12
  public void foo(int arg0, int arg1, int arg2, int arg3, double arg4, double arg5, long arg6, int arg7);
     0  getstatic System.out : PrintStream [22]
     3  lload 9 [arg6]
     5  iload 11 [arg7]
     7  i2l
     8  ladd
     9  invokevirtual PrintStream.println(long) : void [28]
    12  return
Comment 1 Olivier Thomann CLA 2008-07-10 11:16:22 EDT
Created attachment 107087 [details]
Proposed fix + updated regression tests
Comment 2 Olivier Thomann CLA 2008-07-10 11:43:40 EDT
Released for 3.5M1.
Comment 3 Kent Johnson CLA 2008-08-06 12:45:37 EDT
Verified for 3.5M1 using I20080805-1307