@ -27,13 +27,20 @@ let normalize prog::prog args::args :list action_item => {
" %s 2>&1 "
" %s 2>&1 "
(
(
ClangCommand . prepend_arg " -### " cmd | >
ClangCommand . prepend_arg " -### " cmd | >
/* c++ modules are not supported, so let clang know in case it was passed
/* c++ modules are not supported, so let clang know in case it was passed "-fmodules".
" -fmodules " . Unfortunately we cannot know accurately if " -fmodules " was passed because we
Unfortunately we cannot know accurately if " -fmodules " was passed because we don't go
don't go into argument files at this point ( " clang -### ... " will do that for us ) , so we
into argument files at this point ( " clang -### ... " will do that for us ) , so we also pass
also pass " -Qunused-arguments " to silence the potential warning that " -fno-cxx-modules "
" -Qunused-arguments " to silence the potential warning that " -fno-cxx-modules " was
was ignored . Moreover , " -fno-cxx-modules " is only accepted by the clang driver so we have
ignored . Moreover , " -fno-cxx-modules " is only accepted by the clang driver so we have to
to pass it now . * /
pass it now .
ClangCommand . append_args [ " -fno-cxx-modules " , " -Qunused-arguments " ] | > ClangCommand . command_to_run
Using clang instead of gcc may trigger warnings about unsupported optimization flags ;
passing - Wno - ignored - optimization - argument prevents that . * /
ClangCommand . append_args [
" -fno-cxx-modules " ,
" -Qunused-arguments " ,
" -Wno-ignored-optimization-argument "
] | > ClangCommand . command_to_run
) ;
) ;
Logging . out " clang -### invocation: %s@ \n " clang_hashhashhash ;
Logging . out " clang -### invocation: %s@ \n " clang_hashhashhash ;
let normalized_commands = ref [] ;
let normalized_commands = ref [] ;