comparison gcc/c-decl.c @ 102:fdc380f80c07

fix __rectype expression
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Mon, 20 Feb 2012 15:38:52 +0900
parents 5c3ad79fc15b
children 46ee985e4f0e
comparison
equal deleted inserted replaced
101:5c3ad79fc15b 102:fdc380f80c07
5152 "%<__thread%>", 5152 "%<__thread%>",
5153 name); 5153 name);
5154 threadp = false; 5154 threadp = false;
5155 } 5155 }
5156 } 5156 }
5157
5158
5159 #ifndef noCbC
5160 if ( declspecs->typespec_word == cts_CbC_rec )
5161 {
5162 type = build_code_segment_type (type, NULL_TREE);
5163 IS_RECTYPE(type) = 1;
5164 }
5165 #endif
5166
5157 5167
5158 /* Now figure out the structure of the declarator proper. 5168 /* Now figure out the structure of the declarator proper.
5159 Descend through it, creating more complex types, until we reach 5169 Descend through it, creating more complex types, until we reach
5160 the declared identifier (or NULL_TREE, in an absolute declarator). 5170 the declared identifier (or NULL_TREE, in an absolute declarator).
5161 At each stage we maintain an unqualified version of the type 5171 At each stage we maintain an unqualified version of the type
5634 } 5644 }
5635 break; 5645 break;
5636 } 5646 }
5637 case cdk_pointer: 5647 case cdk_pointer:
5638 { 5648 {
5639 #ifndef noCbC
5640 if ( declspecs->typespec_word == cts_CbC_rec )
5641 {
5642 type = build_code_segment_type (type, NULL_TREE);
5643 IS_RECTYPE(type) = 1;
5644 }
5645 #endif
5646 /* Merge any constancy or volatility into the target type 5649 /* Merge any constancy or volatility into the target type
5647 for the pointer. */ 5650 for the pointer. */
5648 5651
5649 if (pedantic && TREE_CODE (type) == FUNCTION_TYPE 5652 if (pedantic && TREE_CODE (type) == FUNCTION_TYPE
5650 && type_quals) 5653 && type_quals)
5688 TYPE_NAME (type) = decl; 5691 TYPE_NAME (type) = decl;
5689 } 5692 }
5690 5693
5691 type = build_pointer_type (type); 5694 type = build_pointer_type (type);
5692 5695
5696 #ifndef noCbC
5697 if ( declspecs->typespec_word == cts_CbC_rec ){
5698 IS_RECTYPE(type) = 1;
5699 }
5700 #endif
5693 /* Process type qualifiers (such as const or volatile) 5701 /* Process type qualifiers (such as const or volatile)
5694 that were given inside the `*'. */ 5702 that were given inside the `*'. */
5695 type_quals = declarator->u.pointer_quals; 5703 type_quals = declarator->u.pointer_quals;
5696 5704
5697 declarator = declarator->declarator; 5705 declarator = declarator->declarator;