diff options
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index d8ffb058cb5..44d6360d9bf 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -726,10 +726,9 @@ flags_from_decl_or_type (tree exp) flags |= ECF_NOTHROW; if (TREE_READONLY (exp) && ! TREE_THIS_VOLATILE (exp)) - flags |= ECF_LIBCALL_BLOCK; + flags |= ECF_LIBCALL_BLOCK | ECF_CONST; } - - if (TREE_READONLY (exp) && ! TREE_THIS_VOLATILE (exp)) + else if (TYPE_P (exp) && TYPE_READONLY (exp) && ! TREE_THIS_VOLATILE (exp)) flags |= ECF_CONST; if (TREE_THIS_VOLATILE (exp)) |