Commit e7b7077e by Joern Rennecke Committed by Joern Rennecke

epiphany.c (epiphany_handle_interrupt_attribute): Emit an error when the function has arguments.

gcc:
        * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
        Emit an error when the function has arguments.
gcc/testsuite:
        * gcc.target/epiphany/isr-arg.c: New file.

From-SVN: r210157
parent c4597c1d
2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
* config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
Emit an error when the function has arguments.
2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
* cfgloop.h (unswitch_loops): Remove.
......
......@@ -450,15 +450,28 @@ static const struct attribute_spec epiphany_attribute_table[] =
/* Handle an "interrupt" attribute; arguments as in
struct attribute_spec.handler. */
static tree
epiphany_handle_interrupt_attribute (tree *node ATTRIBUTE_UNUSED,
tree name, tree args,
epiphany_handle_interrupt_attribute (tree *node, tree name, tree args,
int flags ATTRIBUTE_UNUSED,
bool *no_add_attrs)
{
tree value;
if (!args)
return NULL_TREE;
{
gcc_assert (DECL_P (*node));
tree t = TREE_TYPE (*node);
if (TREE_CODE (t) != FUNCTION_TYPE)
warning (OPT_Wattributes, "%qE attribute only applies to functions",
name);
/* Argument handling and the stack layout for interrupt handlers
don't mix. It makes no sense in the first place, so emit an
error for this. */
else if (TYPE_ARG_TYPES (t)
&& TREE_VALUE (TYPE_ARG_TYPES (t)) != void_type_node)
error_at (DECL_SOURCE_LOCATION (*node),
"interrupt handlers cannot have arguments");
return NULL_TREE;
}
value = TREE_VALUE (args);
......
2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
* gcc.target/epiphany/isr-arg.c: New file.
2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
PR tree-optimization/52252
......
int *p;
void __attribute__((interrupt))
isr (int signum) /* { dg-error "interrupt handlers cannot have arguments" } */
{
*p = 1;
return;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment