diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-03 08:49:54 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-03 08:49:54 +0000 |
commit | 0ceb8ef3fca66e5cbd929f2d6c8a39c38995d7e1 (patch) | |
tree | 50dbff5174357134e5765f52d37d701d41e0be34 /gcc/ada/gcc-interface | |
parent | 265200d0ccd6e5a4f57f9a79f74abfe8c0120574 (diff) | |
download | gcc-0ceb8ef3fca66e5cbd929f2d6c8a39c38995d7e1.tar.gz |
* gcc-interface/utils2.c (build_simple_component_ref): Do not look
through an extension if the type contains a placeholder.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189202 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r-- | gcc/ada/gcc-interface/utils2.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index c7dfe98fce2..b72ebedcea3 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -1912,10 +1912,12 @@ build_simple_component_ref (tree record_variable, tree component, break; /* Next, see if we're looking for an inherited component in an extension. - If so, look thru the extension directly. */ + If so, look thru the extension directly, but not if the type contains + a placeholder, as it might be needed for a later substitution. */ if (!new_field && TREE_CODE (record_variable) == VIEW_CONVERT_EXPR && TYPE_ALIGN_OK (record_type) + && !type_contains_placeholder_p (record_type) && TREE_CODE (TREE_TYPE (TREE_OPERAND (record_variable, 0))) == RECORD_TYPE && TYPE_ALIGN_OK (TREE_TYPE (TREE_OPERAND (record_variable, 0)))) |