[cfe-dev] How to silence warnings from system headers

Andrew Reece via cfe-dev cfe-dev at lists.llvm.org
Fri Jan 24 02:11:38 PST 2020


Hi Chris,

Thanks for the response.
I double-checked my arguments and tried -isystem and -internal-isystem
again, but no change.

Is there anything else I can try?

This is the array of arguments I'm handing to clang:

```
char const *args[] = {
    "-triple",                                // target triple
    /**/    "TRIPLE",                         // overriden later

    "-disable-free",                          // Disable freeing of memory
on exit
    "-main-file-name",                        // Main file name to use for
debug info
    /* */ "INPUT_FILE",
    "-target-cpu",               "x86-64",    // Target a specific cpu type
    "-dwarf-column-info",                     // Turn on column location
information

    "-masm-verbose",                          // Generate verbose assembly
output
    "-mconstructor-aliases",                  // Emit complete constructors
and destructors as aliases when possible
    "-mthread-model",            "posix",     // The thread model to use,
e.g. posix, single (posix by default)
    "-momit-leaf-frame-pointer",              // Omit frame pointer setup
for leaf functions
    "-mrelocation-model",        "pic",       // The relocation model to use
    "-munwind-tables",                        // Generate unwinding tables
for all functions
    "-pic-level",                "2",         // Value for __PIC__

    "-fms-extensions",                        // Accept some non-standard
constructs supported by the Microsoft compiler
    "-fms-compatibility",                     // Enable full Microsoft
Visual C++ compatibility
    "-fms-compatibility-version=14.16.27023", // Dot-separated value
representing the Microsoft compiler version number to report in _MSC_VER (0
= don't define it (default))

    "-resource-dir",                          // The directory which holds
the compiler resource files
    "E:\\Program Files\\LLVM\\lib\\clang\\9.0.0",

    "-isystem",
    "C:\\Program Files (x86)\\Microsoft Visual
Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\ATLMFC\\include",
    "-isystem",
    "C:\\Program Files (x86)\\Microsoft Visual
Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\include",

    "-isystem",
    "C:\\Program Files (x86)\\Windows
Kits\\10\\Include\\10.0.17763.0\\shared",
    "-isystem",
    "C:\\Program Files (x86)\\Windows
Kits\\10\\Include\\10.0.17763.0\\ucrt",
    "-isystem",
    "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.17763.0\\um",

    "-fdebug-compilation-dir",                // The compilation directory
to embed in the debug info
    "E:\\Documents\\Coding\\debug",
    "-ferror-limit",             "19",        // Set the maximum number of
errors to emit before stopping (0 = no limit).
    // Emit an error if a C++ static local initializer would need a guard
variable
    "-fmessage-length",          "120",       // Format message diagnostics
so that they fit within N columns or fewer, when possible
    "-fno-use-cxa-atexit",                    // Don't use __cxa_atexit for
calling destructors
    "-fdelayed-template-parsing",             // Parse templated function
definitions at the end of the translation unit
    "-fobjc-runtime=gcc",                     // Specify the target
Objective-C runtime kind and version
    "-fdiagnostics-show-option",              // Print option name with
mappable diagnostics
    "-fcolor-diagnostics",
    "-fmath-errno",                           // Require math functions to
indicate errors by setting errno
    "-faddrsig",                              // Emit an
address-significance table
    /**/"-femit-all-decls",                       // Emit all declarations,
even if unused [verified to work - AZMR]

    /**/"-x", "c",                                // Treat subsequent input
files as having type <language>
    input_file,
};
```

Cheers,
Andrew

On Sun, 19 Jan 2020 at 23:57, Christian Gagneraud <chgans at gmail.com> wrote:

> On Mon, 20 Jan 2020 at 07:10, Andrew Reece via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
> >
> > Hi clang people,
> >
> > I'm using clang as a frontend for the LLVM ORC JIT on Windows.
> > When I include system headers I get long error messages. For example,
> with stdlib.h I get a lot of: "warning: macro expansion producing 'defined'
> has undefined behavior"
> >
> > Is there a way to prevent these warnings? Preferably only for the system
> libraries.
>
> Use `-isystem` instead of `-I` ?
>
> Chris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200124/6c9b2b43/attachment.html>


More information about the cfe-dev mailing list