]> granicus.if.org Git - clang/commitdiff
Disable a silly GCC diagnostic for combining a scanf length specifier with the
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 15 Oct 2016 01:59:52 +0000 (01:59 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 15 Oct 2016 01:59:52 +0000 (01:59 +0000)
'*' specifier. Apparently the GNU folks want to discourage self-documenting
code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284300 91177308-0d34-0410-b5e6-96231b3b80d8

tools/driver/cc1_main.cpp

index 0d54278ee80bfbf0990d313c56bd51fc35be0e54..1a16746d589d3a6508509a4e28ec2071ef8029fa 100644 (file)
@@ -90,12 +90,22 @@ static size_t getCurrentStackAllocation() {
     // program name) after the environment, but this is close enough (we only
     // need to be within 100K or so).
     unsigned long StackPtr, EnvEnd;
+    // Disable silly GCC -Wformat warning that complains about length
+    // modifiers on ignored format specifiers. We want to retain these
+    // for documentation purposes even though they have no effect.
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#endif
     if (fscanf(StatFile,
                "%*d %*s %*c %*d %*d %*d %*d %*d %*u %*lu %*lu %*lu %*lu %*lu "
                "%*lu %*ld %*ld %*ld %*ld %*ld %*ld %*llu %*lu %*ld %*lu %*lu "
                "%*lu %*lu %lu %*lu %*lu %*lu %*lu %*lu %*llu %*lu %*lu %*d %*d "
                "%*u %*u %*llu %*lu %*ld %*lu %*lu %*lu %*lu %*lu %*lu %lu %*d",
                &StackPtr, &EnvEnd) == 2) {
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
       Usage = StackPtr < EnvEnd ? EnvEnd - StackPtr : StackPtr - EnvEnd;
     }
     fclose(StatFile);