Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/security/nss/coreconf/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  Werror.mk   Sprache: Shell

 
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# This sets WARNING_CFLAGS for gcc-like compilers.

ifndef CC_IS_CLANG
  CC_IS_CLANG := $(and $(findstring clang, $(shell $(CC) --version 2>&1)), 1)
  # Export CC_IS_CLANG to save a shell invocation when recursing.
  export CC_IS_CLANG
endif

ifdef CC_IS_CLANG
  # Clang claims GCC 4.2.1 compatibility, see GCC_VERSION
  CC_IS_GCC = 1
  # Export CC_IS_GCC to save a shell invocation when recursing.
  export CC_IS_GCC
endif

ifndef CC_IS_GCC
  CC_IS_GCC := $(shell $(CC) -x c -E -Wall -Werror /dev/null >/dev/null 2>&1 && echo 1)
  # Export CC_IS_GCC to save a shell invocation when recursing.
  export CC_IS_GCC
endif

ifndef CC_NAME
  ifeq (1,$(CC_IS_GCC))
    CC_NAME := $(shell $(CC) -? 2>&1 >/dev/null | sed -e 's/:.*//;1q')
  else
    CC_NAME := $(notdir $(CC))
  endif
  # Export CC_NAME to save a shell invocation when recursing.
  export CC_NAME
endif

ifndef GCC_VERSION
  ifeq (1,$(CC_IS_GCC))
    GCC_VERSION := $(subst ., ,$(shell $(CC) -dumpversion || echo x.x.x))
    # Export GCC_VERSION to save a shell invocation when recursing.
    export GCC_VERSION
  endif
endif

ifndef WARNING_CFLAGS
  ifneq (1,$(CC_IS_GCC))
    WARNING_CFLAGS = $(NULL)
  else
    # This tests to see if enabling the warning is possible before
    # setting an option to disable it.
    set_warning = $(shell $(CC) -x c -E -Werror -W$(1) /dev/null >/dev/null 2>&1 && echo -W$(2)$(1))
    enable_warning = $(call set_warning,$(1),)
    disable_warning = $(call set_warning,$(1),no-)

    WARNING_CFLAGS = -Wall $(call enable_warning,shadow)
    ifdef CC_IS_CLANG
      # -Qunused-arguments : clang objects to arguments that it doesn't understand
      #    and fixing this would require rearchitecture
      WARNING_CFLAGS += -Qunused-arguments
      # -Wno-parentheses-equality : because clang warns about macro expansions
      WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
      ifdef BUILD_OPT
        # clang is unable to handle glib's expansion of strcmp and similar for optimized
        # builds, so ignore the resulting errors.
        # See https://llvm.org/bugs/show_bug.cgi?id=20144
        WARNING_CFLAGS += $(call disable_warning,array-bounds)
        WARNING_CFLAGS += $(call disable_warning,unevaluated-expression)
      endif
    endif # if clang

    ifndef NSS_ENABLE_WERROR
      ifeq ($(OS_TARGET),Android)
        # Android lollipop generates the following warning:
        # error: call to 'sprintf' declared with attribute warning:
        #   sprintf is often misused; please use snprintf [-Werror]
        # So, just suppress -Werror entirely on Android
        NSS_ENABLE_WERROR = 0
        $(warning OS_TARGET is Android, disabling -Werror)
      else
        ifdef CC_IS_CLANG
          # Clang reports its version as an older gcc, but it's OK
          NSS_ENABLE_WERROR = 1
        else
          ifneq (,$(filter 4.8 4.9,$(word 1,$(GCC_VERSION)).$(word 2,$(GCC_VERSION))))
            NSS_ENABLE_WERROR = 1
          endif
          ifeq (,$(filter 0 1 2 3 4,$(word 1,$(GCC_VERSION))))
            NSS_ENABLE_WERROR = 1
          endif
        endif
        ifndef NSS_ENABLE_WERROR
          $(warning Unable to find gcc 4.8 or greater, disabling -Werror)
          NSS_ENABLE_WERROR = 0
        endif
      endif
    endif #ndef NSS_ENABLE_WERROR

    ifeq ($(NSS_ENABLE_WERROR),1)
      WARNING_CFLAGS += -Werror
    else
      # Old versions of gcc (< 4.8) don't support #pragma diagnostic in functions.
      # Use this to disable use of that #pragma and the warnings it suppresses.
      WARNING_CFLAGS += -DNSS_NO_GCC48
    endif
  endif
  export WARNING_CFLAGS
endif # ndef WARNING_CFLAGS

Messung V0.5
C=88 H=93 G=90

¤ Dauer der Verarbeitung: 0.19 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.