Lines Matching defs:specs

3092 quals_from_declspecs (const struct c_declspecs *specs)
3094 int quals = ((specs->const_p ? TYPE_QUAL_CONST : 0)
3095 | (specs->volatile_p ? TYPE_QUAL_VOLATILE : 0)
3096 | (specs->restrict_p ? TYPE_QUAL_RESTRICT : 0));
3097 gcc_assert (!specs->type
3098 && !specs->decl_attr
3099 && specs->typespec_word == cts_none
3100 && specs->storage_class == csc_none
3101 && !specs->typedef_p
3102 && !specs->explicit_signed_p
3103 && !specs->deprecated_p
3104 && !specs->long_p
3105 && !specs->long_long_p
3106 && !specs->short_p
3107 && !specs->signed_p
3108 && !specs->unsigned_p
3109 && !specs->complex_p
3110 && !specs->inline_p
3111 && !specs->thread_p);
3217 grokblockdecl (struct c_declspecs *specs, struct c_declarator *declarator)
3220 tree attrs = specs->attrs;
3222 specs->attrs = NULL_TREE;
3224 decl = grokdeclarator (declarator, specs, BLOCKDEF,
3240 tree attrs = type_name->specs->attrs;
3242 type_name->specs->attrs = NULL_TREE;
3244 type = grokdeclarator (type_name->declarator, type_name->specs, TYPENAME,
4155 tree decl = grokdeclarator (parm->declarator, parm->specs, PARM, false,
4171 decl = grokdeclarator (parm->declarator, parm->specs, PARM, false, NULL);
5949 /* Process the specs, declarator and width (NULL if omitted)
7697 build_c_parm (struct c_declspecs *specs, tree attrs,
7701 ret->specs = specs;
8346 declspecs_add_qual (struct c_declspecs *specs, tree qual)
8350 specs->non_sc_seen_p = true;
8351 specs->declspecs_seen_p = true;
8358 dupe = specs->const_p;
8359 specs->const_p = true;
8362 dupe = specs->volatile_p;
8363 specs->volatile_p = true;
8366 dupe = specs->restrict_p;
8367 specs->restrict_p = true;
8374 return specs;
8381 declspecs_add_type (struct c_declspecs *specs, struct c_typespec spec)
8384 specs->non_sc_seen_p = true;
8385 specs->declspecs_seen_p = true;
8386 specs->type_seen_p = true;
8388 specs->deprecated_p = true;
8392 specs->unavailable_p = true;
8399 if (specs->type)
8402 return specs;
8411 if (specs->long_long_p)
8416 if (specs->long_p)
8418 if (specs->typespec_word == cts_double)
8427 specs->long_long_p = 1;
8430 if (specs->short_p)
8433 else if (specs->typespec_word == cts_void)
8436 else if (specs->typespec_word == cts_bool)
8439 else if (specs->typespec_word == cts_char)
8442 else if (specs->typespec_word == cts_float)
8445 else if (specs->typespec_word == cts_dfloat32)
8448 else if (specs->typespec_word == cts_dfloat64)
8451 else if (specs->typespec_word == cts_dfloat128)
8455 specs->long_p = true;
8458 dupe = specs->short_p;
8459 if (specs->long_p)
8462 else if (specs->typespec_word == cts_void)
8465 else if (specs->typespec_word == cts_bool)
8468 else if (specs->typespec_word == cts_char)
8471 else if (specs->typespec_word == cts_float)
8474 else if (specs->typespec_word == cts_double)
8477 else if (specs->typespec_word == cts_dfloat32)
8480 else if (specs->typespec_word == cts_dfloat64)
8483 else if (specs->typespec_word == cts_dfloat128)
8487 specs->short_p = true;
8490 dupe = specs->signed_p;
8491 if (specs->unsigned_p)
8494 else if (specs->typespec_word == cts_void)
8497 else if (specs->typespec_word == cts_bool)
8500 else if (specs->typespec_word == cts_float)
8503 else if (specs->typespec_word == cts_double)
8506 else if (specs->typespec_word == cts_dfloat32)
8509 else if (specs->typespec_word == cts_dfloat64)
8512 else if (specs->typespec_word == cts_dfloat128)
8516 specs->signed_p = true;
8519 dupe = specs->unsigned_p;
8520 if (specs->signed_p)
8523 else if (specs->typespec_word == cts_void)
8526 else if (specs->typespec_word == cts_bool)
8529 else if (specs->typespec_word == cts_float)
8532 else if (specs->typespec_word == cts_double)
8535 else if (specs->typespec_word == cts_dfloat32)
8538 else if (specs->typespec_word == cts_dfloat64)
8541 else if (specs->typespec_word == cts_dfloat128)
8545 specs->unsigned_p = true;
8548 dupe = specs->complex_p;
8551 if (specs->typespec_word == cts_void)
8554 else if (specs->typespec_word == cts_bool)
8557 else if (specs->typespec_word == cts_dfloat32)
8560 else if (specs->typespec_word == cts_dfloat64)
8563 else if (specs->typespec_word == cts_dfloat128)
8567 specs->complex_p = true;
8576 return specs;
8581 if (specs->typespec_word != cts_none)
8584 return specs;
8589 if (specs->long_p)
8592 else if (specs->short_p)
8595 else if (specs->signed_p)
8598 else if (specs->unsigned_p)
8601 else if (specs->complex_p)
8605 specs->typespec_word = cts_void;
8606 return specs;
8608 if (specs->long_p)
8611 else if (specs->short_p)
8614 else if (specs->signed_p)
8617 else if (specs->unsigned_p)
8620 else if (specs->complex_p)
8624 specs->typespec_word = cts_bool;
8625 return specs;
8627 if (specs->long_p)
8630 else if (specs->short_p)
8634 specs->typespec_word = cts_char;
8635 return specs;
8637 specs->typespec_word = cts_int;
8638 return specs;
8640 if (specs->long_p)
8643 else if (specs->short_p)
8646 else if (specs->signed_p)
8649 else if (specs->unsigned_p)
8653 specs->typespec_word = cts_float;
8654 return specs;
8656 if (specs->long_long_p)
8659 else if (specs->short_p)
8662 else if (specs->signed_p)
8665 else if (specs->unsigned_p)
8669 specs->typespec_word = cts_double;
8670 return specs;
8682 if (specs->long_long_p)
8685 if (specs->long_p)
8688 else if (specs->short_p)
8691 else if (specs->signed_p)
8694 else if (specs->unsigned_p)
8697 else if (specs->complex_p)
8701 specs->typespec_word = cts_dfloat32;
8703 specs->typespec_word = cts_dfloat64;
8705 specs->typespec_word = cts_dfloat128;
8711 return specs;
8724 if (specs->type || specs->typespec_word != cts_none
8725 || specs->long_p || specs->short_p || specs->signed_p
8726 || specs->unsigned_p || specs->complex_p)
8734 specs->type = TREE_TYPE (type);
8735 specs->decl_attr = DECL_ATTRIBUTES (type);
8736 specs->typedef_p = true;
8737 specs->explicit_signed_p = C_TYPEDEF_EXPLICITLY_SIGNED (type);
8748 specs->type = TREE_TYPE (t);
8753 specs->tag_defined_p = true;
8755 specs->typedef_p = true;
8756 specs->type = type;
8759 return specs;
8766 declspecs_add_scspec (struct c_declspecs *specs, tree scspec)
8771 specs->declspecs_seen_p = true;
8775 if (extra_warnings && specs->non_sc_seen_p)
8785 specs->inline_p = true;
8788 dupe = specs->thread_p;
8789 if (specs->storage_class == csc_auto)
8791 else if (specs->storage_class == csc_register)
8793 else if (specs->storage_class == csc_typedef)
8796 specs->thread_p = true;
8804 if (specs->thread_p)
8813 if (specs->thread_p)
8822 if (n != csc_none && n == specs->storage_class)
8828 if (specs->storage_class != csc_none && n != specs->storage_class)
8834 specs->storage_class = n;
8835 if (n != csc_extern && n != csc_static && specs->thread_p)
8838 specs->thread_p = false;
8842 return specs;
8849 declspecs_add_attrs (struct c_declspecs *specs, tree attrs)
8851 specs->attrs = chainon (attrs, specs->attrs);
8852 specs->declspecs_seen_p = true;
8853 return specs;
8863 finish_declspecs (struct c_declspecs *specs)
8867 if (specs->type != NULL_TREE)
8869 gcc_assert (!specs->long_p && !specs->long_long_p && !specs->short_p
8870 && !specs->signed_p && !specs->unsigned_p
8871 && !specs->complex_p);
8872 return specs;
8880 if (specs->typespec_word == cts_none)
8882 if (specs->long_p || specs->short_p
8883 || specs->signed_p || specs->unsigned_p)
8885 specs->typespec_word = cts_int;
8887 else if (specs->complex_p)
8889 specs->typespec_word = cts_double;
8896 specs->typespec_word = cts_int;
8897 specs->default_int_p = true;
8907 specs->explicit_signed_p = specs->signed_p;
8910 switch (specs->typespec_word)
8913 gcc_assert (!specs->long_p && !specs->short_p
8914 && !specs->signed_p && !specs->unsigned_p
8915 && !specs->complex_p);
8916 specs->type = void_type_node;
8919 gcc_assert (!specs->long_p && !specs->short_p
8920 && !specs->signed_p && !specs->unsigned_p
8921 && !specs->complex_p);
8922 specs->type = boolean_type_node;
8925 gcc_assert (!specs->long_p && !specs->short_p);
8926 gcc_assert (!(specs->signed_p && specs->unsigned_p));
8927 if (specs->signed_p)
8928 specs->type = signed_char_type_node;
8929 else if (specs->unsigned_p)
8930 specs->type = unsigned_char_type_node;
8932 specs->type = char_type_node;
8933 if (specs->complex_p)
8937 specs->type = build_complex_type (specs->type);
8941 gcc_assert (!(specs->long_p && specs->short_p));
8942 gcc_assert (!(specs->signed_p && specs->unsigned_p));
8943 if (specs->long_long_p)
8944 specs->type = (specs->unsigned_p
8947 else if (specs->long_p)
8948 specs->type = (specs->unsigned_p
8951 else if (specs->short_p)
8952 specs->type = (specs->unsigned_p
8956 specs->type = (specs->unsigned_p
8959 if (specs->complex_p)
8963 specs->type = build_complex_type (specs->type);
8967 gcc_assert (!specs->long_p && !specs->short_p
8968 && !specs->signed_p && !specs->unsigned_p);
8969 specs->type = (specs->complex_p
8974 gcc_assert (!specs->long_long_p && !specs->short_p
8975 && !specs->signed_p && !specs->unsigned_p);
8976 if (specs->long_p)
8978 specs->type = (specs->complex_p
8984 specs->type = (specs->complex_p
8992 gcc_assert (!specs->long_p && !specs->long_long_p && !specs->short_p
8993 && !specs->signed_p && !specs->unsigned_p && !specs->complex_p);
8994 if (specs->typespec_word == cts_dfloat32)
8995 specs->type = dfloat32_type_node;
8996 else if (specs->typespec_word == cts_dfloat64)
8997 specs->type = dfloat64_type_node;
8999 specs->type = dfloat128_type_node;
9005 return specs;