The mudflap run time checker has been removed. The mudflap options remain, but do nothing.
Support for a number of older systems and recently unmaintained or untested target ports of GCC has been declared obsolete in GCC 4.9. Unless there is activity to revive them, the next release of GCC will have their sources permanently removed.
The following ports for individual systems on particular architectures have been obsoleted:
More information on porting to GCC 4.9 from previous versions of GCC can be found in the porting guide for this release.
-fsanitize=undefined.
	Various computations will be instrumented to detect undefined behavior
	at runtime.  UndefinedBehaviorSanitizer is currently available for the C
	and C++ languages.
    -flto
          option now generates slim objects files (.o) which only
          contain intermediate language representation for LTO. Use
          -ffat-lto-objects to create files which contain
          additionally the object code.  To generate static libraries suitable
          for LTO processing, use gcc-ar and
         gcc-ranlib; to list symbols from a slim object file use
         gcc-nm. (Requires that ar,
         ranlib and nm have been compiled with
         plugin support.)final keyword.-fdevirtualize-speculatively.-freorder-functions) significantly reduces
	  startup time of large applications.  Until binutils support is
 	  completed, it is effective only with link-time optimization.-fopenmp-simd option can be used to enable OpenMP's
	SIMD directives, while ignoring other OpenMP directives. The new -fsimd-cost-model= option permits to tune the
	vectorization cost model for loops annotated with OpenMP and Cilk
	Plus simd directives; -Wopenmp-simd warns when
	the current costmodel overrides simd directives set by the user.-Wdate-time option has been added for the C, C++ and
	Fortran compilers, which warns when the __DATE__,
	__TIME__ or __TIMESTAMP__ macros are used.
	Those macros might prevent bit-wise-identical reproducible
	compilations.-fdiagnostics-color=auto will enable it when
    outputting to terminals, -fdiagnostics-color=always
    unconditionally.  The GCC_COLORS environment variable
    can be used to customize the colors or disable coloring.
    If GCC_COLORS variable is present in the environment,
    the default is -fdiagnostics-color=auto, otherwise
    -fdiagnostics-color=never.
    $ g++ -fdiagnostics-color=always -S -Wall test.C
    test.C: In function ‘int foo()’:
    test.C:1:14: warning: no return statement in function returning non-void [-Wreturn-type]
     int foo () { }
                  ^
    test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum) instantiating ‘struct X<100>’
     template <int N> struct X { static const int value = X<N-1>::value; }; template struct X<1000>;
                                                  ^
    test.C:2:46:   recursively required from ‘const int X<999>::value’
    test.C:2:46:   required from ‘const int X<1000>::value’
    test.C:2:88:   required from here
    test.C:2:46: error: incomplete type ‘X<100>’ used in nested name specifier
    #pragma GCC ivdep, the user can assert that there are no
    loop-carried dependencies which would prevent concurrent execution of
    consecutive iterations using SIMD (single instruction multiple data)
    instructions.-fcilkplus option.  Cilk Plus
    is an extension to the C and C++ languages to support data and task
    parallelism.  The present implementation follows ABI version 1.2; all
    features but _Cilk_for have been implemented._Atomic type specifier and
  qualifier and the <stdatomic.h> header) are now
  supported._Generic keyword) are
  now supported._Thread_local,
  similar to GNU C __thread) is now supported.-fextended-identifiers is used), floating-point
  issues (mainly but not entirely relating to optional C99 features
  from Annexes F and G) and the optional Annexes K (Bounds-checking
  interfaces) and L (Analyzability).__auto_type provides a subset of
  the functionality of C++11 auto in GNU C.
int& f();
         auto  i1 = f(); // int
decltype(auto) i2 = f(); // int&
[x = 42]{ ... };
void f(int n) {
  int a[n] = { 1, 2, 3 }; // throws std::bad_array_length if n < 3
  [&a]{ for (int i : a) { cout << i << endl; } }();
  &a; // error, taking address of VLA
}
class A;
int bar(int n);
#if __cplusplus > 201103
class [[deprecated("A is deprecated in C++14; Use B instead")]] A;
[[deprecated("bar is unsafe; use foo() instead")]]
int bar(int n);
int foo(int n);
class B;
#endif
A aa; // warning: 'A' is deprecated : A is deprecated in C++14; Use B instead
int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use foo() instead
int i = 1048576; int j = 1'048'576; int k = 0x10'0000; int m = 0'004'000'000; int n = 0b0001'0000'0000'0000'0000'0000; double x = 1.602'176'565e-19; double y = 1.602'176'565e-1'9;
// a functional object that will increment any type
auto incr = [](auto x) { return x++; };
<regex>;<map> and
              <set> and the unordered associative containers
              in <unordered_map> and <unordered_set>
              meet the allocator-aware container requirements; constexpr member functions without const; std::exchange() utility function; std::make_unique; std::shared_lock; std::result_of SFINAE-friendly; operator() to integral_constant; std::basic_string, std::chrono::duration,
             and std::complex; std::equal and std::mismatch; constexpr members to <utility>,
             <complex>, <chrono>, and some containers; std::integer_sequence; <functional>s operator functors easier to use
             and more generic; std::experimental::optional.std::experimental::string_view.std::copy_exception has been deprecated
        and will be removed in a future version. std::make_exception_ptr
        should be used instead.
    .mod)
        has been incremented; additionally, module files are now compressed.
        Fortran MODULEs compiled by earlier GCC versions have
        to be recompiled, when they are USEd by files compiled
        with GCC 4.9, because GCC 4.9 is not able to read .mod
        files of earlier GCC versions; attempting to do so gives an error
        message. Note: The ABI of the produced assembler data itself has not
        changed: object files and libraries are fully compatible to older
        versions. (Except for the next items.)INTEGER, REAL,
	  COMPLEX and LOGICAL, which have
	  both the VALUE and the OPTIONAL
	  attribute.CLASS should be recompiled, including all files which
          define derived types involved in the type definition used by
          polymorphic variables. (Note: Due to the incremented module version,
          trying to mix old code with new code will usually give an error
          message.)SAVE
        attribute.fcntl(), e.g. via
        ISO_C_BINDING, before executing the child process.-fno-whole-file
      has been removed. (-fwhole-file is the default since
      GCC 4.6.) -fwhole-file/-fno-whole-file
      continue to be accepted but do not influence the code generation.DO loops with zero iterations.  This warning is now
      controlled by the -Wzerotrips option, which is implied by
      -Wall.NO_ARG_CHECK attribute of the !GCC$ directive can be used to disable the
      type-kind-rank (TKR) argument check for a dummy argument. The feature
      is similar to ISO/IEC TS 29133:2012's TYPE(*), except that
      it additionally also disables the rank check. Variables with
      NO_ARG_CHECK have to be dummy arguments and may only be
      used as argument to ISO_C_BINDING's C_LOC
      and as actual argument to another NO_ARG_CHECK dummy
      argument; also the other constraints of TYPE(*) apply.
      The dummy arguments should be declared as scalar or assumed-size
      variable of type type(*) (recommended) – or of
      type integer, real, complex
      or logical. With NO_ARG_CHECK, a pointer
      to the data without further type or shape information is passed,
      similar to C's void*. Note that also TS 29113's
      type(*),dimension(..) accepts arguments of any type and
      rank; contrary to NO_ARG_CHECK assumed-rank arguments
      pass an array descriptor which contains the array shape and stride
      of the argument.STOP or ERROR STOP is used to terminate
        the execution and any exception (but inexact) is signaling, a warning is
        printed to ERROR_UNIT, indicating which exceptions are
        signaling. The -ffpe-summary= command-line option can be used to fine-tune
        for which exception the warning should be shown.READ) is now handled on systems where
        strtod honours the rounding mode. (For output, rounding is
        supported since GCC 4.5.) Note that for input, the
        compatible rounding mode is handled as nearest
        (i.e., for a tie, rounding to an even last significant
        [cf. IEC 60559:1989] – while compatible rounds away
        from zero for a tie).-march=armv8-a+crc
       and -march=armv8-a+crypto options.
     -mabi=ilp32. Support for ILP32 is
       considered experimental as the ABI specification is still beta.
     -mcpu=cortex-a57.cortex-a53
        option.
     -mneon-for-64bits option.
      -mrestrict-it option can be used with
       -march=armv7-a or the -march=armv7ve options
       to make code generation fully compatible with the deprecated instructions
       in ARMv8-A.
     -march=armv7ve option.
     -march=armv8-a+crc
       and mfpu=crypto-neon-fp-armv8 options.
     -mno-lra option. This option is purely
       transitionary command line option and will be removed in a future
       release. We are interested in any bug reports regarding functional and
       performance regressions with LRA.
     -mslow-flash-data to improve performance
       of programs fetching data on slow flash memory has now been
       introduced for the ARMv7-M profile cores.
     -mpic-data-is-text-relative for targets
       that allows data segments to be relative to text segments has
       been added. This is on by default for all targets except VxWorks RTP.
     -mcpu=cortex-a12 and -mcpu=cortex-r7 options.
     -mcpu=cortex-a57 and -mcpu=cortex-a53
        options.
     -mcpu=cortex-a57.cortex-a53
        option. Similar support was added for the combination of
       Cortex-A15 and Cortex-A7 through the -mcpu=cortex-a15.cortex-a7
        option.
     -mfpmath=sse is now implied by -ffast-math
	on all targets where SSE2 is supported.-mavx512f, AVX-512 prefetch instructions: -mavx512pf,
      AVX-512 exponential and reciprocal instructions: -mavx512er,
      AVX-512 conflict detection instructions: -mavx512cd.
    -mxxx option.
      This improves the usability of x86 intrinsics and is particularly useful
      when doing Function Multiversioning.
    -march=silvermont.
    -march=broadwell.
    -march=nehalem, westmere,
      sandybridge, ivybridge,
      haswell, bonnell.
    -march=generic has been retuned for better support of
      Intel core and AMD Bulldozer architectures.  Performance of AMD K7, K8,
      Intel Pentium-M, and Pentium4 based CPUs is no longer considered important
      for generic.
    -mtune=intel can now be used to generate code running
      well on the most current Intel processors, which are Haswell
      and Silvermont for GCC 4.9.
    -m16 command-line option.
    memcpy and memset 
	that is aware of value ranges and produces shorter alignment prologues.
    -mno-accumulate-outgoing-args is now honored when unwind
      information is output.  Argument accumulation is also now turned off
      for portions of programs optimized for size.-march=bdver4 and
        -mtune=bdver4 options.-mcpu= has been added to the MSP430 backend.
    This option is used to specify the ISA to be used.  Accepted values are
    msp430 (the default), msp430x and msp430xv2.  The ISA is no longer deduced
    from the -mmcu= option as there are far too many different MCU names.  The
    -mmcu= option is still supported, and this is still used to select linker
    scripts and generate a C preprocessor symbol that will be recognised by the
    msp430.h header file.-mcpu=power8 and -mtune=power8 options.-march=zEC12 option but can explicitly be
      disabled with -mno-htm.
      Using the GCC builtins also libitm supports hardware
      transactions on S/390.-mhotpatch for a compilation unit or can be
      enabled per function using the hotpatch
      attribute.-march=z10
      or higher.clips and clipu
    instructions.  The compiler will now try to utilize them for min/max
    expressions such as max (-128, min (127, x)).cmp/str instruction through built-in
    functions such as __builtin_strlen.  When not optimizing for
    size, the compiler will now expand calls to e.g. strlen as an
    inlined sequences which utilize the cmp/str instruction.-mcbranchdi has been deprecated.  Specifying it
    will result in a warning and will not influence code generation.-mcmpeqdi has been deprecated.  Specifying it
    will result in a warning and will not influence code generation.Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
These pages are maintained by the GCC team. Last modified 2014-04-22.