diff mbox

[2/3] Error message on target attribute on aarch64 target (PR target/79889).

Message ID a35c4ea2ff40d1f2feeb88300a9c821b1405435f.1489418416.git.mliska@suse.cz
State New
Headers show

Commit Message

Martin Liška March 13, 2017, 8:25 a.m. UTC
gcc/testsuite/ChangeLog:

2017-03-13  Martin Liska  <mliska@suse.cz>

	* g++.dg/ext/mv8.C: Add aarch64* targets.

gcc/ChangeLog:

2017-03-13  Martin Liska  <mliska@suse.cz>

	* config/aarch64/aarch64.c (aarch64_process_target_attr):
	Show error message instead of an ICE.
---
 gcc/config/aarch64/aarch64.c   | 8 ++++++--
 gcc/testsuite/g++.dg/ext/mv8.C | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

Comments

Martin Liška March 21, 2017, 9:20 a.m. UTC | #1
PING^ + adding aarch64 maintainer.

Thanks,
Martin
Kyrill Tkachov March 21, 2017, 9:24 a.m. UTC | #2
<CC-ing aarch64 maintainers/reviewers>

Hi Martin,

On 13/03/17 08:25, marxin wrote:
> gcc/testsuite/ChangeLog:
>
> 2017-03-13  Martin Liska  <mliska@suse.cz>
>
> 	* g++.dg/ext/mv8.C: Add aarch64* targets.
>
> gcc/ChangeLog:
>
> 2017-03-13  Martin Liska  <mliska@suse.cz>
>
> 	* config/aarch64/aarch64.c (aarch64_process_target_attr):
> 	Show error message instead of an ICE.

You should mention PR target/79889 in your ChangeLog
> ---
>   gcc/config/aarch64/aarch64.c   | 8 ++++++--
>   gcc/testsuite/g++.dg/ext/mv8.C | 2 +-
>   2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index a069427f576..3107d6b84bf 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -9533,8 +9533,12 @@ aarch64_process_target_attr (tree args, const char* pragma_or_attr)
>   
>         return true;
>       }
> -  /* We expect to find a string to parse.  */
> -  gcc_assert (TREE_CODE (args) == STRING_CST);
> +
> +  if (TREE_CODE (args) != STRING_CST)
> +    {
> +      error ("attribute %<target%> argument not a string");
> +      return false;
> +    }
>   

Looks reasonable to me, but you'll need approval from the folks CC-ed.

Thanks,
Kyrill

>     size_t len = strlen (TREE_STRING_POINTER (args));
>     char *str_to_check = (char *) alloca (len + 1);
> diff --git a/gcc/testsuite/g++.dg/ext/mv8.C b/gcc/testsuite/g++.dg/ext/mv8.C
> index bbf90b5a328..b49ef84f392 100644
> --- a/gcc/testsuite/g++.dg/ext/mv8.C
> +++ b/gcc/testsuite/g++.dg/ext/mv8.C
> @@ -1,4 +1,4 @@
> -// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* } }
> +// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* aarch64*-*-* } }
>   // { dg-options "" }
>   
>   __attribute__((target (11,12)))
Martin Liška April 3, 2017, 7:26 a.m. UTC | #3
Thanks Kyrill for review. I'm pinging the patch.

Martin

On 03/21/2017 10:24 AM, Kyrill Tkachov wrote:
> <CC-ing aarch64 maintainers/reviewers>
> 
> Hi Martin,
> 
> On 13/03/17 08:25, marxin wrote:
>> gcc/testsuite/ChangeLog:
>>
>> 2017-03-13  Martin Liska  <mliska@suse.cz>
>>
>>     * g++.dg/ext/mv8.C: Add aarch64* targets.
>>
>> gcc/ChangeLog:
>>
>> 2017-03-13  Martin Liska  <mliska@suse.cz>
>>
>>     * config/aarch64/aarch64.c (aarch64_process_target_attr):
>>     Show error message instead of an ICE.
> 
> You should mention PR target/79889 in your ChangeLog
>> ---
>>   gcc/config/aarch64/aarch64.c   | 8 ++++++--
>>   gcc/testsuite/g++.dg/ext/mv8.C | 2 +-
>>   2 files changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
>> index a069427f576..3107d6b84bf 100644
>> --- a/gcc/config/aarch64/aarch64.c
>> +++ b/gcc/config/aarch64/aarch64.c
>> @@ -9533,8 +9533,12 @@ aarch64_process_target_attr (tree args, const char* pragma_or_attr)
>>           return true;
>>       }
>> -  /* We expect to find a string to parse.  */
>> -  gcc_assert (TREE_CODE (args) == STRING_CST);
>> +
>> +  if (TREE_CODE (args) != STRING_CST)
>> +    {
>> +      error ("attribute %<target%> argument not a string");
>> +      return false;
>> +    }
>>   
> 
> Looks reasonable to me, but you'll need approval from the folks CC-ed.
> 
> Thanks,
> Kyrill
> 
>>     size_t len = strlen (TREE_STRING_POINTER (args));
>>     char *str_to_check = (char *) alloca (len + 1);
>> diff --git a/gcc/testsuite/g++.dg/ext/mv8.C b/gcc/testsuite/g++.dg/ext/mv8.C
>> index bbf90b5a328..b49ef84f392 100644
>> --- a/gcc/testsuite/g++.dg/ext/mv8.C
>> +++ b/gcc/testsuite/g++.dg/ext/mv8.C
>> @@ -1,4 +1,4 @@
>> -// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* } }
>> +// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* aarch64*-*-* } }
>>   // { dg-options "" }
>>     __attribute__((target (11,12)))
>
James Greenhalgh April 7, 2017, 11:14 a.m. UTC | #4
On Mon, Apr 03, 2017 at 09:26:16AM +0200, Martin Liška wrote:
> Thanks Kyrill for review. I'm pinging the patch.

OK.

Thanks,
James

> 
> Martin
> 
> On 03/21/2017 10:24 AM, Kyrill Tkachov wrote:
> > <CC-ing aarch64 maintainers/reviewers>
> > 
> > Hi Martin,
> > 
> > On 13/03/17 08:25, marxin wrote:
> >> gcc/testsuite/ChangeLog:
> >>
> >> 2017-03-13  Martin Liska  <mliska@suse.cz>
> >>
> >>     * g++.dg/ext/mv8.C: Add aarch64* targets.
> >>
> >> gcc/ChangeLog:
> >>
> >> 2017-03-13  Martin Liska  <mliska@suse.cz>
> >>
> >>     * config/aarch64/aarch64.c (aarch64_process_target_attr):
> >>     Show error message instead of an ICE.
> >
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index a069427f576..3107d6b84bf 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -9533,8 +9533,12 @@  aarch64_process_target_attr (tree args, const char* pragma_or_attr)
 
       return true;
     }
-  /* We expect to find a string to parse.  */
-  gcc_assert (TREE_CODE (args) == STRING_CST);
+
+  if (TREE_CODE (args) != STRING_CST)
+    {
+      error ("attribute %<target%> argument not a string");
+      return false;
+    }
 
   size_t len = strlen (TREE_STRING_POINTER (args));
   char *str_to_check = (char *) alloca (len + 1);
diff --git a/gcc/testsuite/g++.dg/ext/mv8.C b/gcc/testsuite/g++.dg/ext/mv8.C
index bbf90b5a328..b49ef84f392 100644
--- a/gcc/testsuite/g++.dg/ext/mv8.C
+++ b/gcc/testsuite/g++.dg/ext/mv8.C
@@ -1,4 +1,4 @@ 
-// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* } }
+// { dg-do compile { target i?86-*-* x86_64-*-* powerpc*-*-* aarch64*-*-* } }
 // { dg-options "" }
 
 __attribute__((target (11,12)))