Mercurial > hg > CbC > CbC_gcc
comparison gcc/c-parser.c @ 101:5c3ad79fc15b
modify implemeted __rectype expression
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 16 Feb 2012 18:15:22 +0900 |
parents | 29a62213c1d0 |
children | fdc380f80c07 |
comparison
equal
deleted
inserted
replaced
100:29a62213c1d0 | 101:5c3ad79fc15b |
---|---|
1635 else | 1635 else |
1636 { | 1636 { |
1637 tree d = start_decl (declarator, specs, false, | 1637 tree d = start_decl (declarator, specs, false, |
1638 chainon (postfix_attrs, | 1638 chainon (postfix_attrs, |
1639 all_prefix_attrs)); | 1639 all_prefix_attrs)); |
1640 #ifndef noCbC | |
1641 if(specs->storage_class == csc_typedef) { | |
1642 tree tmp = TREE_TYPE(d); | |
1643 while(TREE_CODE(tmp) == POINTER_TYPE) tmp = TREE_TYPE(tmp); | |
1644 if(TREE_CODE(tmp) == FUNCTION_TYPE) { | |
1645 tree t = declarator->u.arg_info->parms; | |
1646 while(t) { | |
1647 tree tmptype = t; | |
1648 while(TREE_TYPE(tmptype) && TREE_CODE(TREE_TYPE(tmptype)) == POINTER_TYPE) { | |
1649 t = TREE_TYPE(tmptype); | |
1650 tmptype = TREE_TYPE(t); | |
1651 } | |
1652 if(TREE_CODE(tmptype) != FUNCTION_TYPE) { | |
1653 t = TREE_CHAIN(t); | |
1654 continue; | |
1655 } | |
1656 if(IS_RECTYPE(tmptype)) { | |
1657 TREE_TYPE(t) = tmp; | |
1658 break; | |
1659 } | |
1660 t = TREE_CHAIN(t); | |
1661 } | |
1662 } | |
1663 } | |
1664 #endif | |
1640 if (d) | 1665 if (d) |
1641 finish_decl (d, UNKNOWN_LOCATION, NULL_TREE, | 1666 finish_decl (d, UNKNOWN_LOCATION, NULL_TREE, |
1642 NULL_TREE, asm_name); | 1667 NULL_TREE, asm_name); |
1643 | 1668 |
1644 if (c_parser_next_token_is_keyword (parser, RID_IN)) | 1669 if (c_parser_next_token_is_keyword (parser, RID_IN)) |