From 1bfb8f513f3d5af5a967b6860b0eb642e738de0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez?= Date: Thu, 28 Aug 2008 00:00:49 +0000 Subject: [PATCH] re PR c++/37217 (-Wconversion causes ICE with __builtin_strcmp with one char compare) 2008-08-27 Manuel Lopez-Ibanez PR 37217 * c-common.c (conversion_warning): Check for null operands. testsuite/ * gcc.dg/pr37217.c: New. From-SVN: r139682 --- gcc/ChangeLog | 5 +++++ gcc/c-common.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr37217.c | 10 ++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/pr37217.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63b1981daae..4175e023251 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-08-27 Manuel Lopez-Ibanez + + PR 37217 + * c-common.c (convesion_warning): Check for null operands. + 2008-08-27 Manuel Lopez-Ibanez PR c/31673 diff --git a/gcc/c-common.c b/gcc/c-common.c index d06c96940f4..e0a0829ec58 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -1568,7 +1568,7 @@ conversion_warning (tree type, tree expr) for (i = 0; i < expr_num_operands; i++) { tree op = TREE_OPERAND (expr, i); - if (DECL_P (op) && DECL_ARTIFICIAL (op)) + if (op && DECL_P (op) && DECL_ARTIFICIAL (op)) return; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5d73d74a0c..707ccb7431d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-08-27 Manuel Lopez-Ibanez + + PR 37217 + * gcc.dg/pr37217.c: New. + 2008-08-27 Manuel Lopez-Ibanez PR c/31673 diff --git a/gcc/testsuite/gcc.dg/pr37217.c b/gcc/testsuite/gcc.dg/pr37217.c new file mode 100644 index 00000000000..989eda2cd88 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr37217.c @@ -0,0 +1,10 @@ +/* PR 37217 ICE with -Wconversion */ +/* { dg-do compile } */ +/* { dg-options "-Wconversion" } */ +typedef struct Tcl_ResolvedVarInfo { + char *re_guts; +} regex_t; +void TclReComp(regex_t *re) +{ + if (re->re_guts == ((void *)0)) ; +}