Lines Matching defs:dsym

994 check_bit_field_type(sym_t *dsym, type_t **inout_tp, tspec_t *inout_t)
1029 dsym->s_type = tp = block_dup_type(gettyp(t = INT));
1038 check_bit_field(sym_t *dsym, tspec_t *inout_t, type_t **inout_tp)
1041 check_bit_field_type(dsym, inout_tp, inout_t);
1050 } else if (tp->t_bit_field_width == 0 && dsym->s_name != unnamed) {
1055 if (dsym->s_scl == UNION_MEMBER) {
1058 dsym->s_type->t_bitfield = false;
1059 dsym->s_bitfield = false;
1132 declare_member(sym_t *dsym)
1135 lint_assert(is_member(dsym));
1142 if (dsym->u.s_member.sm_containing_type ==
1145 error(33, dsym->s_name);
1150 check_type(dsym);
1152 type_t *tp = dsym->s_type;
1154 if (dsym->s_bitfield)
1155 check_bit_field(dsym, &t, &tp);
1159 dsym->s_type = tp = block_derive_type(tp, t = PTR);
1167 int sz = length_in_bits(dsym->s_type, dsym->s_name);
1168 if (sz == 0 && t == ARRAY && dsym->s_type->u.dimension == 0)
1170 c99ism(39, dsym->s_name);
1172 dcs_add_member(dsym);
1174 check_function_definition(dsym, false);
1178 return dsym;
1182 set_bit_field_width(sym_t *dsym, int bit_field_width)
1185 if (dsym == NULL) {
1186 dsym = block_zero_alloc(sizeof(*dsym), "sym");
1187 dsym->s_name = unnamed;
1188 dsym->s_kind = SK_MEMBER;
1189 dsym->s_scl = STRUCT_MEMBER;
1190 dsym->s_type = gettyp(UINT);
1191 dsym->s_block_level = -1;
1193 dsym->u.s_member.sm_containing_type = dcs->d_tag_type->u.sou;
1195 dsym->s_type = block_dup_type(dsym->s_type);
1196 dsym->s_type->t_bitfield = true;
1197 dsym->s_type->t_bit_field_width = bit_field_width;
1198 dsym->s_bitfield = true;
1199 debug_sym("set_bit_field_width: ", dsym, "\n");
1200 return dsym;
1897 check_old_style_definition(const sym_t *rdsym, const sym_t *dsym)
1901 const sym_t *proto_params = dsym->s_type->u.params;
1944 declare_extern(sym_t *dsym, bool has_initializer, const sbuf_t *renaming)
1948 lint_assert(dsym->s_rename == NULL);
1952 dsym->s_rename = s;
1955 check_extern_declaration(dsym);
1957 check_function_definition(dsym, true);
1959 check_type(dsym);
1961 if (has_initializer && !check_init(dsym))
1962 dsym->s_def = DEF;
1969 if (dsym->s_type->t_tspec == FUNC && dsym->s_def == TDEF)
1970 dsym->s_def = DECL;
1973 if (dsym->s_type->t_tspec == FUNC) {
1974 dsym->s_inline = true;
1977 warning(268, dsym->s_name);
1983 dsym->s_type->t_tspec == FUNC && dsym->s_type->t_proto) {
1988 bool rval = dsym->s_type->t_subt->t_tspec != VOID;
1989 outfdef(dsym, &dsym->s_def_pos, rval, false, NULL);
1990 } else if (!is_compiler_builtin(dsym->s_name)
1991 && !(has_initializer && dsym->s_type->t_incomplete_array)) {
1992 outsym(dsym, dsym->s_scl, dsym->s_def);
2004 bool redec = rdsym->s_osdef && dsym->s_type->t_proto &&
2005 check_old_style_definition(rdsym, dsym);
2008 if (!redec && !check_redeclaration(dsym, &dowarn)) {
2013 error(27, dsym->s_name);
2016 warning(27, dsym->s_name);
2024 if (rdsym->s_osdef && !dsym->s_type->t_proto) {
2025 dsym->s_osdef = rdsym->s_osdef;
2026 dsym->u.s_old_style_params =
2028 dsym->s_def_pos = rdsym->s_def_pos;
2031 if (rdsym->s_type->t_proto && !dsym->s_type->t_proto)
2032 dsym->s_def_pos = rdsym->s_def_pos;
2033 else if (rdsym->s_def == DEF && dsym->s_def != DEF)
2034 dsym->s_def_pos = rdsym->s_def_pos;
2036 copy_usage_info(dsym, rdsym);
2040 dsym->s_def = DEF;
2044 dsym->s_inline = true;
2046 complete_type(dsym, rdsym);
2052 if (dsym->s_scl == TYPEDEF) {
2053 dsym->s_type = block_dup_type(dsym->s_type);
2054 dsym->s_type->t_typedef = true;
2055 set_first_typedef(dsym->s_type, dsym);
2056 if (dsym->s_type->t_tspec == STRUCT)
2058 query_message(21, dsym->s_name,
2059 type_name(dsym->s_type));
2060 else if (dsym->s_type->t_tspec == UNION)
2062 query_message(22, dsym->s_name,
2063 type_name(dsym->s_type));
2064 else if (dsym->s_type->t_tspec == PTR
2065 && dsym->s_type->t_subt->t_tspec == STRUCT)
2067 query_message(23, dsym->s_name,
2068 type_name(dsym->s_type));
2069 else if (dsym->s_type->t_tspec == PTR
2070 && dsym->s_type->t_subt->t_tspec == UNION)
2072 query_message(24, dsym->s_name,
2073 type_name(dsym->s_type));
2076 debug_sym("", dsym, "\n");
2124 check_redeclaration(sym_t *dsym, bool *dowarn)
2130 error(27, dsym->s_name);
2136 error(89, dsym->s_name);
2140 if (dsym->s_scl == TYPEDEF) {
2142 error(27, dsym->s_name);
2146 if (rdsym->s_def == DEF && dsym->s_def == DEF) {
2148 error(28, dsym->s_name);
2152 if (!types_compatible(rdsym->s_type, dsym->s_type,
2155 error(347, dsym->s_name,
2156 type_name(dsym->s_type), type_name(rdsym->s_type));
2160 if (rdsym->s_scl == EXTERN && dsym->s_scl == EXTERN)
2162 if (rdsym->s_scl == STATIC && dsym->s_scl == STATIC)
2164 if (rdsym->s_scl == STATIC && dsym->s_def == DECL)
2172 error(27, dsym->s_name);
2178 warning(29, dsym->s_name);
2191 warning(30, dsym->s_name);
2194 dsym->s_scl = STATIC;
2330 complete_type(sym_t *dsym, const sym_t *ssym)
2332 type_t **dstp = &dsym->s_type;
2356 debug_sym("dsym: ", dsym, "");
2601 check_local_hiding(const sym_t *dsym, const sym_t *rdsym)
2603 switch (dsym->s_scl) {
2606 warning(86, dsym->s_name, type_name(rdsym->s_type));
2610 warning(87, dsym->s_name, type_name(rdsym->s_type));
2614 warning(88, dsym->s_name, type_name(rdsym->s_type));
2625 check_local_redeclaration(const sym_t *dsym, sym_t *rdsym)
2629 check_local_hiding(dsym, rdsym);
2642 warning(91, dsym->s_name);
2649 warning(95, dsym->s_name);
2653 error(27, dsym->s_name);
2660 declare_external_in_block(sym_t *dsym)
2669 if (strcmp(dsym->s_name, esym->s_name) == 0)
2678 warning(27, dsym->s_name);
2684 bool compatible = types_compatible(esym->s_type, dsym->s_type,
2690 warning(90, dsym->s_name);
2694 warning(92, dsym->s_name);
2704 dsym->s_ext_sym = esym;
2712 declare_local(sym_t *dsym, bool has_initializer)
2716 if (dsym->s_type->t_tspec == FUNC) {
2717 dsym->s_def = DECL;
2719 dsym->s_scl = EXTERN;
2722 if (dsym->s_scl == EXTERN)
2724 warning(352, dsym->s_name);
2726 if (dsym->s_type->t_tspec == FUNC) {
2727 if (dsym->s_scl == STATIC) {
2729 warning(93, dsym->s_name);
2730 dsym->s_scl = EXTERN;
2731 } else if (dsym->s_scl != EXTERN && dsym->s_scl != TYPEDEF) {
2733 error(94, dsym->s_name);
2734 dsym->s_scl = EXTERN;
2746 if (dsym->s_type->t_tspec == FUNC)
2747 dsym->s_inline = true;
2750 warning(268, dsym->s_name);
2754 if (dsym->s_type->t_const
2755 && (dsym->s_scl == AUTO || dsym->s_scl == REG)) {
2757 query_message(18, dsym->s_name);
2760 check_function_definition(dsym, true);
2762 check_type(dsym);
2764 if (dcs->d_redeclared_symbol != NULL && dsym->s_scl == EXTERN)
2765 declare_external_in_block(dsym);
2767 if (dsym->s_scl == EXTERN) {
2772 if (dsym->s_ext_sym == NULL)
2773 outsym(dsym, EXTERN, dsym->s_def);
2775 outsym(dsym, dsym->s_ext_sym->s_scl, dsym->s_def);
2779 check_local_redeclaration(dsym, dcs->d_redeclared_symbol);
2781 if (has_initializer && !check_init(dsym)) {
2782 dsym->s_def = DEF;
2783 mark_as_set(dsym);
2786 if (dsym->s_scl == TYPEDEF) {
2787 dsym->s_type = block_dup_type(dsym->s_type);
2788 dsym->s_type->t_typedef = true;
2789 set_first_typedef(dsym->s_type, dsym);
2792 if (dsym->s_scl == STATIC)
2794 query_message(11, dsym->s_name);
2797 debug_sym("", dsym, "\n");
2867 check_size(const sym_t *dsym)
2870 if (dsym->s_def == DEF &&
2871 dsym->s_scl != TYPEDEF &&
2872 dsym->s_type->t_tspec != FUNC &&
2873 length_in_bits(dsym->s_type, dsym->s_name) == 0 &&
2874 dsym->s_type->t_tspec == ARRAY &&
2875 dsym->s_type->u.dimension == 0) {
2878 warning(190, dsym->s_name);
2881 error(190, dsym->s_name);