On 07/18/2011 05:19 AM, Richard Earnshaw wrote:
> On 18/07/11 12:09, Tom de Vries wrote:
>> Hi,
>>
>> PR43597 was fixed by 
>> http://gcc.gnu.org/viewcvs?view=revision&revision=172032.
>>
>> This patch adds a testcase.
>>
>> OK for trunk?
>>
>> Thanks,
>> - Tom
>>
>> 2011-07-18  Tom de Vries  <t...@codesourcery.com>
>>
>>     PR target/43597
>>     * gcc.target/arm/pr43597.c: New test.
>>
>>
> 
> No, don't pass -mthumb through dg-options unless you're using something
> like require-effective-target.
> 
> In this case the post-compile tests are all gated on thumb2.  So why not
> make the whole test just require arm_thumb2_ok?
> 
> R.
>

arm_thumb2_ok says that the target generates thumb2 code with -thumb.
arm_thumb2 says that with no additional options it generates thumb2
code.

The test could use either "dg-require-effective-target arm_thumb2" or
"dg-require-effective-target arm_thumb2_ok" plus "dg-options "-mthumb";
for either of those the checks on dg-final aren't necessary.

Janis

> 
>>
>>
>> pr43597.patch
>>
>>
>> Index: gcc.target/arm/pr43597.c
>> ===================================================================
>> --- /dev/null (new file)
>> +++ gcc.target/arm/pr43597.c (revision 0)
>> @@ -0,0 +1,24 @@
>> +/* { dg-do assemble } */
>> +/* { dg-options "-Os -save-temps -mthumb" } */
>> +
>> +extern int bar();
>> +extern void bar2(int);
>> +int foo4()
>> +{
>> +     int result = 0;
>> +     int f = -1;
>> +     f = bar();
>> +     if (f < 0) {
>> +         result = 1;
>> +         goto bail;
>> +     }
>> +      bar();
>> +bail:
>> +      bar2(f);
>> +      return result;
>> +}
>> +
>> +/* { dg-final { scan-assembler-times "sub" 1 { target arm_thumb2_ok } } } */
>> +/* { dg-final { scan-assembler-times "cmp" 0 { target arm_thumb2_ok } } } */
>> +/* { dg-final { object-size text <= 30 { target arm_thumb2_ok } } } */
>> +/* { dg-final { cleanup-saved-temps "pr43597" } } */
> 
> 

Reply via email to