Commit 2f283818 by Eric Botcazou Committed by Eric Botcazou

decl.c (gnat_to_gnu_entity): Do not make constant objects covered by 13.3(19) volatile.

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
	constant objects covered by 13.3(19) volatile.

From-SVN: r146468
parent ac53d5f2
2009-04-21 Eric Botcazou <ebotcazou@adacore.com> 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not make
constant objects covered by 13.3(19) volatile.
2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/utils.c (create_type_decl): Do not pass declarations * gcc-interface/utils.c (create_type_decl): Do not pass declarations
of dummy fat pointer types to the debug back-end. of dummy fat pointer types to the debug back-end.
...@@ -967,15 +967,12 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) ...@@ -967,15 +967,12 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
/* Make a volatile version of this object's type if we are to make /* Make a volatile version of this object's type if we are to make
the object volatile. We also interpret 13.3(19) conservatively the object volatile. We also interpret 13.3(19) conservatively
and disallow any optimizations for an object covered by it. */ and disallow any optimizations for such a non-constant object. */
if ((Treat_As_Volatile (gnat_entity) if ((Treat_As_Volatile (gnat_entity)
|| (Is_Exported (gnat_entity) || (!const_flag
/* Exclude exported constants created by the compiler, && (Is_Exported (gnat_entity)
which should boil down to static dispatch tables and || Is_Imported (gnat_entity)
make it possible to put them in read-only memory. */ || Present (Address_Clause (gnat_entity)))))
&& (Comes_From_Source (gnat_entity) || !const_flag))
|| Is_Imported (gnat_entity)
|| Present (Address_Clause (gnat_entity)))
&& !TYPE_VOLATILE (gnu_type)) && !TYPE_VOLATILE (gnu_type))
gnu_type = build_qualified_type (gnu_type, gnu_type = build_qualified_type (gnu_type,
(TYPE_QUALS (gnu_type) (TYPE_QUALS (gnu_type)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment