https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81368

            Bug ID: 81368
           Summary: GCC reports bad option if
                    -fdata-sections/-ffunction-sections is specified
                    through #pragma or function attribute
           Product: gcc
           Version: 7.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sebastian.schrader at ossmail dot de
  Target Milestone: ---

GCC 7.1.1 reports a bad option if -fdata-sections or -ffunction-section is
specified through the #pragma GCC optimize directive or the optimize function
attribute.

Earlier versions of GCC, such as 5.4.0 don't report a bad option and also act
upon  it (verified with objdump -x).

Example with #pragma:
#pragma GCC optimize("-ffunction-sections")

int f(int x)
{
    return x;
}

% gcc -o pragma.o -c pragma.c
pragma.c:1:9: warning: bad option ‘-ffunction-sections’ to pragma ‘optimize’
[-Wpragmas]
 #pragma GCC optimize("-ffunction-sections")
         ^~~
pragma.c:4:1: warning: bad option ‘-ffunction-sections’ to attribute ‘optimize’
[-Wattributes]
 {
 ^

Example with attribute:
__attribute__((optimize("-fdata-sections")))
int g(int x)
{
    return x;
}

% gcc -o attribute.o -c attribute.c
attribute.c:3:1: warning: bad option ‘-fdata-sections’ to attribute ‘optimize’
[-Wattributes]
 {
 ^

Reply via email to