Mercurial > hg > CbC > CbC_gcc
comparison gcc/c-common.c @ 48:9907f3135723
update CbC on GCC from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:48:31 +0900 |
parents | 27e6f95b2c21 3bfb6c00c1e0 |
children | 326d9e06c2e3 |
comparison
equal
deleted
inserted
replaced
45:d645ac0f55d6 | 48:9907f3135723 |
---|---|
7640 case CALL_EXPR: | 7640 case CALL_EXPR: |
7641 case TARGET_EXPR: | 7641 case TARGET_EXPR: |
7642 error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded"); | 7642 error ("cannot apply %<offsetof%> when %<operator[]%> is overloaded"); |
7643 return error_mark_node; | 7643 return error_mark_node; |
7644 | 7644 |
7645 case INTEGER_CST: | |
7646 gcc_assert (integer_zerop (expr)); | |
7647 return size_zero_node; | |
7648 | |
7649 case NOP_EXPR: | 7645 case NOP_EXPR: |
7650 case INDIRECT_REF: | 7646 case INDIRECT_REF: |
7651 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); | 7647 if (!integer_zerop (TREE_OPERAND (expr, 0))) |
7652 gcc_assert (base == error_mark_node || base == size_zero_node); | 7648 { |
7653 return base; | 7649 error ("cannot apply %<offsetof%> to a non constant address"); |
7650 return error_mark_node; | |
7651 } | |
7652 return size_zero_node; | |
7654 | 7653 |
7655 case COMPONENT_REF: | 7654 case COMPONENT_REF: |
7656 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); | 7655 base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref); |
7657 if (base == error_mark_node) | 7656 if (base == error_mark_node) |
7658 return base; | 7657 return base; |