This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Is there a way not to optimize out "static const" at -Os?
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: David Kang <dkang at isi dot edu>
- Cc: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Thu, 22 Oct 2015 21:44:15 +0100
- Subject: Re: Is there a way not to optimize out "static const" at -Os?
- Authentication-results: sourceware.org; auth=none
- References: <1954241568 dot 16073 dot 1445544759522 dot JavaMail dot root at zm dot isi dot edu>
On 22 October 2015 at 21:12, David Kang wrote:
>
> Hi,
> I want to let the gcc leave the following static const at the optimization -Os.
> The functions "A_exec0", "A_initialize" are static function.
> I tried a few compiler options such as "-fkeep-static-consts".
> But gcc optimizes it out at -Os.
> My compiler is gcc-4.7.3.
> "-fkeep-static-functions" doesn't seem to be supported by my compiler.
>
> static const __attribute__((unused, section(".driver_table"))) driver_t driver = {
> .type = "A_driver",
> .initialize = A_initialize,
> .executors = {A_exec0 }
> };
>
> Any idea about how to keep the static const and keep the section ".driver_table"?
Did you try __attribute__((used)) ?