User forums > Using Code::Blocks

BUG: no such gcc switch as -pedantic-error

(1/2) > >>

scorpion007:
The correct switch is -pedantic-errors -- it is plural.
Also, may i request a minor feature? Have an additional -ansi switch in the list. Of course it can be added in additional options, but its a fairly common switch.

killerbot:
absolutely correct :


http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Warning-Options.html#index-pedantic-200

--- Quote ----pedantic
    Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the version of the ISO C standard specified by any -std option used.

    Valid ISO C and ISO C++ programs should compile properly with or without this option (though a rare few will require -ansi or a -std option specifying the required version of ISO C). However, without this option, certain GNU extensions and traditional C and C++ features are supported as well. With this option, they are rejected.

    -pedantic does not cause warning messages for use of the alternate keywords whose names begin and end with `__'. Pedantic warnings are also disabled in the expression that follows __extension__. However, only system header files should use these escape routes; application programs should avoid them. See Alternate Keywords.

    Some users try to use -pedantic to check programs for strict ISO C conformance. They soon find that it does not do quite what they want: it finds some non-ISO practices, but not all—only those for which ISO C requires a diagnostic, and some others for which diagnostics have been added.

    A feature to report any failure to conform to ISO C might be useful in some instances, but would require considerable additional work and would be quite different from -pedantic. We don't have plans to support such a feature in the near future.

    Where the standard specified with -std represents a GNU extended dialect of C, such as `gnu89' or `gnu99', there is a corresponding base standard, the version of ISO C on which the GNU extended dialect is based. Warnings from -pedantic are given where they are required by the base standard. (It would not make sense for such warnings to be given only for features not in the specified GNU C dialect, since by definition the GNU dialects of C include all features the compiler supports with the given option, and there would be nothing to warn about.)
-pedantic-errors
    Like -pedantic, except that errors are produced rather than warnings.
--- End quote ---


http://gcc.gnu.org/onlinedocs/gcc-4.1.1/cpp/Invocation.html#index-pedantic-140

--- Quote ----pedantic
    Issue all the mandatory diagnostics listed in the C standard. Some of them are left out by default, since they trigger frequently on harmless code.
-pedantic-errors
    Issue all the mandatory diagnostics, and make all mandatory diagnostics into errors. This includes mandatory diagnostics that GCC issues without `-pedantic' but treats as warnings.
--- End quote ---

adjusted our sources : revision 3165
Thanks for pointing that out !!!

killerbot:

--- Quote ----ansi
    Specify the standard to which the code should conform. Currently CPP knows about C and C++ standards; others may be added in the future.

    standard may be one of:

    iso9899:1990
    c89
        The ISO C standard from 1990. `c89' is the customary shorthand for this version of the standard.

        The -ansi option is equivalent to -std=c89.
    iso9899:199409
        The 1990 C standard, as amended in 1994.
    iso9899:1999
    c99
    iso9899:199x
    c9x
        The revised ISO C standard, published in December 1999. Before publication, this was known as C9X.
    gnu89
        The 1990 C standard plus GNU extensions. This is the default.
    gnu99
    gnu9x
        The 1999 C standard plus GNU extensions.
    c++98
        The 1998 ISO C++ standard plus amendments.
    gnu++98
        The same as -std=c++98 plus GNU extensions. This is the default for C++ code.
--- End quote ---

one little question, is the option just : -ansi or do you need to specify one of those standards ??

scorpion007:
for C, "The -ansi option is equivalent to -std=c89"
for C++, gnu++98 is the default.

killerbot:
ok I will add this option, but it's a check box : yes or no, no possibility to add anything else to that specific option.

[EDIT] on second thought what's the benefit ?? for C/C++ is the same as the default ???

Navigation

[0] Message Index

[#] Next page

Go to full version