Testcase: int g(int f) { return (&f)!=0; } ----- Just like PR 25861. t.c:5: internal compiler error: tree check: expected tree that contains "decl with visibility" structure, have "parm_decl" in build_binary_op, at c-typeck.c:7987 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Confirmed.
Here is the fix: Index: c-typeck.c =================================================================== --- c-typeck.c (revision 113199) +++ c-typeck.c (working copy) @@ -7978,7 +7978,8 @@ build_binary_op (enum tree_code code, tr { if (TREE_CODE (op0) == ADDR_EXPR && DECL_P (TREE_OPERAND (op0, 0)) - && !DECL_WEAK (TREE_OPERAND (op0, 0))) + && (TREE_CODE (TREE_OPERAND(op0, 0)) == PARM_DECL + || !DECL_WEAK (TREE_OPERAND (op0, 0)))) warning (OPT_Walways_true, "the address of %qD will never be NULL", TREE_OPERAND (op0, 0)); result_type = type0; @@ -7987,7 +7988,8 @@ build_binary_op (enum tree_code code, tr { if (TREE_CODE (op1) == ADDR_EXPR && DECL_P (TREE_OPERAND (op1, 0)) - && !DECL_WEAK (TREE_OPERAND (op1, 0))) + && (TREE_CODE (TREE_OPERAND(op1, 0)) == PARM_DECL + || !DECL_WEAK (TREE_OPERAND (op1, 0)))) warning (OPT_Walways_true, "the address of %qD will never be NULL", TREE_OPERAND (op1, 0)); result_type = type1;
Mine.
Subject: Bug 27150 Author: sayle Date: Mon Jun 5 02:28:20 2006 New Revision: 114380 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114380 Log: PR middle-end/27382 * c-common.c (c_common_truthvalue_conversion): Explicitly check for LABEL_DECL before calling DECL_WEAK. PR c/27150 * c-typeck.c (build_binary_op): Likewise, explicitly check for LABEL_DECL and PARM_DECL. * gcc.dg/pr27150-1.c: New testcase. * gcc.dg/pr27382-1.c: New testcase. * gcc.dg/pr27382-2.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/pr27150-1.c trunk/gcc/testsuite/gcc.dg/pr27382-1.c trunk/gcc/testsuite/gcc.dg/pr27382-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/c-typeck.c
Subject: Bug 27150 Author: sayle Date: Mon Jun 5 02:31:41 2006 New Revision: 114381 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114381 Log: PR middle-end/27382 PR c/27150 * gcc.dg/pr27150-1.c: New testcase. * gcc.dg/pr27382-1.c: New testcase. * gcc.dg/pr27382-2.c: New testcase. Modified: trunk/gcc/testsuite/ChangeLog
Fixed.