OSDN Git Service

* c-common.c (fix_string_type): Just use c_build_qualified_type to
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 29 Jan 2005 16:12:45 +0000 (16:12 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 29 Jan 2005 16:12:45 +0000 (16:12 +0000)
commitaebc8537fd59ab4cd6e0cea7b784acdf17b03745
tree146eb63899ed165bd17ec164fc3ef99342b7f13b
parent5c906e8eb80e9a71be38d41ea594871bad074efb
* c-common.c (fix_string_type): Just use c_build_qualified_type to
build string type.
(c_build_qualified_type): Build qualified array types with
TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
* c-decl.c (c_make_fname_decl): Build unqualified array type
before qualified type.
(grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
type is qualified, not just if type itself is.  Don't apply
qualifiers to array type when declarator is processed.  Apply
qualifiers to field type whether or not it is an array type.
Don't handle array types specially for applying qualifiers to
variables.
* c-typeck.c (composite_type): Build unqualified element type and
array type when forming composite of array types.
(common_pointer_type, comptypes, comp_target_types,
type_lists_compatible_p, build_indirect_ref, build_array_ref,
convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
types.
(type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
(args2) in variables a1 and a2.

testsuite:
* gcc.dg/Wwrite-strings-1.c, gcc.dg/array-quals-2.c,
gcc.dg/lvalue-3.c: New tests.
* gcc.dg/concat.c: Update expected messages.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94411 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/c-common.c
gcc/c-decl.c
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wwrite-strings-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/array-quals-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/concat.c
gcc/testsuite/gcc.dg/lvalue-3.c [new file with mode: 0644]