------- Comment #2 from pinskia at gcc dot gnu dot org 2006-04-24 00:38 ------- 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;
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27150