Skip to content
Snippets Groups Projects
Commit fb8309d4 authored by Jozef Lawrynowicz's avatar Jozef Lawrynowicz
Browse files

cp/decl.c: Set DECL_INITIAL before attribute processing

Attribute handlers may want to examine DECL_INITIAL for a decl, to
validate the attribute being applied. For C++, DECL_INITIAL is currently
not set until cp_finish_decl, by which time attribute validation has
already been performed.

For msp430-elf this causes the "persistent" attribute to always be
rejected for C++, since DECL_INITIAL must be non-null for the
attribute to be applied to a decl.

This patch ensures DECL_INITIAL is set for initialized decls early in
start_decl, before attribute handlers run. This allows the
initialization status of the decl to be examined by the handlers.
DECL_INITIAL must be restored to it's initial value after attribute
validation is performed, so as to not interfere with later decl
processing.

gcc/cp/ChangeLog:

	* decl.c (start_decl): Set DECL_INITIAL for initialized decls
	before attribute processing.

gcc/testsuite/ChangeLog:

	* gcc.target/msp430/data-attributes-2.c: Adjust test.
	* g++.target/msp430/data-attributes.C: New test.
	* g++.target/msp430/msp430.exp: New test.
parent b510765d
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment