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 <[email protected]>
>>
>> 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" } } */
>
>