From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5525 invoked by alias); 16 Jun 2010 15:38:29 -0000 Received: (qmail 5414 invoked by uid 48); 16 Jun 2010 15:38:14 -0000 Date: Wed, 16 Jun 2010 15:38:00 -0000 Message-ID: <20100616153814.5413.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/44542] expand_one_stack_var_at may set DECL_ALIGN to a too high value In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-06/txt/msg01717.txt.bz2 ------- Comment #16 from hjl dot tools at gmail dot com 2010-06-16 15:38 ------- (In reply to comment #15) > 2) even when get_decl_align_unit returns something small, the decl might still > get a nicely aligned slot (say offset 64). If it is known at this point > that virtual_stack_vars_rtx will be at least 32 byte aligned, we shouldn't hide > that fact from the expanders. > I just pointed out where "expand_one_stack_var_at may set DECL_ALIGN to a too high value" came from. To guarantee "virtual_stack_vars_rtx will be at least 32 byte aligned", stack has to be aligned at 32byte to begin with. Otherwise, you may not get 32byte alignment. The current code looks correct to me if you want to use stack offset as alignment. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44542