mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
Add a -suppress-warnings option to bitcode linking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200927 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
efcc736270
commit
6984ee6aa2
@ -19,12 +19,18 @@
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/TypeFinder.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
#include <cctype>
|
||||
using namespace llvm;
|
||||
|
||||
|
||||
static cl::opt<bool>
|
||||
SuppressWarnings("suppress-warnings", cl::desc("Suppress all linking warnings"),
|
||||
cl::init(false));
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// TypeMap implementation.
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1134,9 +1140,11 @@ bool ModuleLinker::linkModuleFlagsMetadata() {
|
||||
case Module::Warning: {
|
||||
// Emit a warning if the values differ.
|
||||
if (SrcOp->getOperand(2) != DstOp->getOperand(2)) {
|
||||
if (!SuppressWarnings) {
|
||||
errs() << "WARNING: linking module flags '" << ID->getString()
|
||||
<< "': IDs have conflicting values";
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
case Module::Append: {
|
||||
@ -1201,16 +1209,21 @@ bool ModuleLinker::run() {
|
||||
DstM->setTargetTriple(SrcM->getTargetTriple());
|
||||
|
||||
if (!SrcM->getDataLayout().empty() && !DstM->getDataLayout().empty() &&
|
||||
SrcM->getDataLayout() != DstM->getDataLayout())
|
||||
SrcM->getDataLayout() != DstM->getDataLayout()) {
|
||||
if (!SuppressWarnings) {
|
||||
errs() << "WARNING: Linking two modules of different data layouts!\n";
|
||||
}
|
||||
}
|
||||
if (!SrcM->getTargetTriple().empty() &&
|
||||
DstM->getTargetTriple() != SrcM->getTargetTriple()) {
|
||||
if (!SuppressWarnings) {
|
||||
errs() << "WARNING: Linking two modules of different target triples: ";
|
||||
if (!SrcM->getModuleIdentifier().empty())
|
||||
errs() << SrcM->getModuleIdentifier() << ": ";
|
||||
errs() << "'" << SrcM->getTargetTriple() << "' and '"
|
||||
<< DstM->getTargetTriple() << "'\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Append the module inline asm string.
|
||||
if (!SrcM->getModuleInlineAsm().empty()) {
|
||||
|
Loading…
Reference in New Issue
Block a user