Mercurial > hg > CbC > CbC_gcc
comparison gcc/c-common.c @ 47:3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:44:34 +0900 |
parents | 855418dad1a3 |
children | 9907f3135723 77e2b8dfacca |
comparison
equal
deleted
inserted
replaced
46:b85a337e5837 | 47:3bfb6c00c1e0 |
---|---|
7631 case CALL_EXPR: | 7631 case CALL_EXPR: |
7632 case TARGET_EXPR: | 7632 case TARGET_EXPR: |
7633 error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded"); | 7633 error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded"); |
7634 return error_mark_node; | 7634 return error_mark_node; |
7635 | 7635 |
7636 case INTEGER_CST: | |
7637 gcc_assert (integer_zerop (expr)); | |
7638 return size_zero_node; | |
7639 | |
7640 case NOP_EXPR: | 7636 case NOP_EXPR: |
7641 case INDIRECT_REF: | 7637 case INDIRECT_REF: |
7642 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); | 7638 if (!integer_zerop (TREE_OPERAND (expr, 0))) |
7643 gcc_assert (base == error_mark_node || base == size_zero_node); | 7639 { |
7644 return base; | 7640 error ("cannot apply %<offsetof%> to a non constant address"); |
7641 return error_mark_node; | |
7642 } | |
7643 return size_zero_node; | |
7645 | 7644 |
7646 case COMPONENT_REF: | 7645 case COMPONENT_REF: |
7647 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); | 7646 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); |
7648 if (base == error_mark_node) | 7647 if (base == error_mark_node) |
7649 return base; | 7648 return base; |