diff options
author | Marek Polacek <polacek@redhat.com> | 2014-01-16 11:42:56 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-01-16 11:42:56 +0000 |
commit | 5147d10aa4b2b608a02fb885a5510c983e148f06 (patch) | |
tree | 3412b82ff000734c2ddf28a21879ef44862b1e6a /gcc | |
parent | 1a22d3cb982c29f0481169519c4edadf8c6ac694 (diff) | |
download | gcc-5147d10aa4b2b608a02fb885a5510c983e148f06.zip gcc-5147d10aa4b2b608a02fb885a5510c983e148f06.tar.gz gcc-5147d10aa4b2b608a02fb885a5510c983e148f06.tar.bz2 |
re PR middle-end/59827 (ICE on array with incomplete element type)
PR middle-end/59827
* cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
it is error_mark_node.
testsuite/
* gcc.dg/pr59827.c: New test.
From-SVN: r206660
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraph.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr59827.c | 15 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 255597f..0580d16 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-01-16 Marek Polacek <polacek@redhat.com> + + PR middle-end/59827 + * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if + it is error_mark_node. + 2014-01-15 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (ix86_hard_regno_mode_ok): Use diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 09fb4cb..92b31b9 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -3035,6 +3035,7 @@ gimple_check_call_args (gimple stmt, tree fndecl, bool args_count_match) break; arg = gimple_call_arg (stmt, i); if (p == error_mark_node + || DECL_ARG_TYPE (p) == error_mark_node || arg == error_mark_node || (!types_compatible_p (DECL_ARG_TYPE (p), TREE_TYPE (arg)) && !fold_convertible_p (DECL_ARG_TYPE (p), arg))) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a533d4f..7db83e6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-16 Marek Polacek <polacek@redhat.com> + + PR middle-end/59827 + * gcc.dg/pr59827.c: New test. + 2014-01-16 Andreas Schwab <schwab@linux-m68k.org> * gcc.c-torture/execute/pr59747.c (fn1): Return a value. diff --git a/gcc/testsuite/gcc.dg/pr59827.c b/gcc/testsuite/gcc.dg/pr59827.c new file mode 100644 index 0000000..77e1e9c --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr59827.c @@ -0,0 +1,15 @@ +/* PR middle-end/59827 */ +/* { dg-do compile } */ + +int +foo (int p[2][]) /* { dg-error "array type has incomplete element type" } */ +{ + return p[0][0]; +} + +void +bar (void) +{ + int p[2][1]; + foo (p); /* { dg-error "type of formal parameter 1 is incomplete" } */ +} |