[Lldb-commits] [lldb] r191457 - Fix the thread jump test case for 32-bit inferiors. A jump was going back to a function call using a source line number. However, the parameters being passed to the function were setup before the instruction we jumpe...

Kopec, Matt matt.kopec at intel.com
Thu Oct 3 10:20:25 PDT 2013


Probably, but it would be good to know that this feature works on 32-bit inferiors in general so that's why I made the change. Specifically, it was failing with gcc 4.6.2 (with -O0).

On 2013-10-02, at 9:52 PM, Richard Mitton <richard at codersnotes.com> wrote:

> Isn't this actually a compiler bug? I mean, in a non-optimized build, you would expect all code relevant to a source line to be emitted in strict order, with correct line numbers.
> 
> (i.e. it shouldn't be putting code for parameters before the line itself, unless some kind of optimization is enabled)
> 
> Richard Mitton
> richard at codersnotes.com
> 
> On 09/26/2013 01:54 PM, Matt Kopec wrote:
>> Author: mkopec
>> Date: Thu Sep 26 15:54:17 2013
>> New Revision: 191457
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=191457&view=rev
>> Log:
>> Fix the thread jump test case for 32-bit inferiors. A jump was going back to a function call using a source line number. However, the parameters being passed to the function were setup before the instruction we jumped to. In other words, the source line was associated with assembly after the function parameters had been setup for the function to be called.
>> 
>> Modified:
>>     lldb/trunk/test/functionalities/thread/jump/main.cpp
>> 
>> Modified: lldb/trunk/test/functionalities/thread/jump/main.cpp
>> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/thread/jump/main.cpp?rev=191457&r1=191456&r2=191457&view=diff
>> ==============================================================================
>> --- lldb/trunk/test/functionalities/thread/jump/main.cpp (original)
>> +++ lldb/trunk/test/functionalities/thread/jump/main.cpp Thu Sep 26 15:54:17 2013
>> @@ -26,9 +26,10 @@ int main ()
>>  {
>>      int i;
>>      double j;
>> -
>> -    i = min(4, 5); // 3rd marker
>> -    j = min(7.0, 8.0); // 4th marker
>> +    int min_i_a = 4, min_i_b = 5;
>> +    double min_j_a = 7.0, min_j_b = 8.0;
>> +    i = min(min_i_a, min_i_b); // 3rd marker
>> +    j = min(min_j_a, min_j_b); // 4th marker
>>        return 0;
>>  }
>> 
>> 
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits





More information about the lldb-commits mailing list