Update Trac ticket URLs to point to GitLab
[ghc.git] / includes / Stg.h
index 9b54526..547b36a 100644 (file)
 #endif
 
 /* Used to mark a switch case that falls-through */
 #endif
 
 /* Used to mark a switch case that falls-through */
-#if (defined(__GNUC__) && __GNUC__ >= 7) || defined(__clang__)
+#if (defined(__GNUC__) && __GNUC__ >= 7)
+// N.B. Don't enable fallthrough annotations when compiling with Clang.
+// Apparently clang doesn't enable implicitly fallthrough warnings by default
+// http://llvm.org/viewvc/llvm-project?revision=167655&view=revision
+// when compiling C and the attribute cause warnings of their own (#16019).
 #define FALLTHROUGH GNU_ATTRIBUTE(fallthrough)
 #else
 #define FALLTHROUGH ((void)0)
 #define FALLTHROUGH GNU_ATTRIBUTE(fallthrough)
 #else
 #define FALLTHROUGH ((void)0)
@@ -258,7 +262,7 @@ typedef StgFunPtr       F_;
 /* foreign functions: */
 #define EFF_(f)   void f() /* See Note [External function prototypes] */
 
 /* foreign functions: */
 #define EFF_(f)   void f() /* See Note [External function prototypes] */
 
-/* Note [External function prototypes]  See Trac #8965, #11395
+/* Note [External function prototypes]  See #8965, #11395
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 In generated C code we need to distinct between two types
 of external symbols:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 In generated C code we need to distinct between two types
 of external symbols:
@@ -285,7 +289,7 @@ believe that all functions declared this way can be called without an
 argument save area, but if the callee has sufficiently many arguments then
 it will expect that area to be present, and will thus corrupt the caller's
 stack.  This happens in particular with calls to runInteractiveProcess in
 argument save area, but if the callee has sufficiently many arguments then
 it will expect that area to be present, and will thus corrupt the caller's
 stack.  This happens in particular with calls to runInteractiveProcess in
-libraries/process/cbits/runProcess.c, and led to Trac #8965.
+libraries/process/cbits/runProcess.c, and led to #8965.
 
 The simplest fix appears to be to declare these external functions with an
 unspecified argument list rather than a void argument list.  This is no
 
 The simplest fix appears to be to declare these external functions with an
 unspecified argument list rather than a void argument list.  This is no