diff options
author | Richard Stallman <rms@gnu.org> | 1993-07-15 05:40:42 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-07-15 05:40:42 +0000 |
commit | 0c16ddf7006c4d440a3a8840b7ed41dbed080be0 (patch) | |
tree | e4a0ac07cea0fad564f6a789d2a440c30f3d6093 | |
parent | c8ab446488fa0117562e03f78682c1e8f1b2eafa (diff) | |
download | gcc-0c16ddf7006c4d440a3a8840b7ed41dbed080be0.zip gcc-0c16ddf7006c4d440a3a8840b7ed41dbed080be0.tar.gz gcc-0c16ddf7006c4d440a3a8840b7ed41dbed080be0.tar.bz2 |
(build_c_cast): When casting to union, if value is array
or function, do default_conversion.
From-SVN: r4926
-rw-r--r-- | gcc/c-typeck.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 8ff4da5..85d2058 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -3854,6 +3854,10 @@ build_c_cast (type, expr) else if (TREE_CODE (type) == UNION_TYPE) { tree field; + if (TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE + || TREE_CODE (TREE_TYPE (value)) == FUNCTION_TYPE) + value = default_conversion (value); + for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) if (comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (field)), TYPE_MAIN_VARIANT (TREE_TYPE (value)))) |