diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2014-04-29 18:45:01 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2014-04-29 18:45:01 +0000 |
commit | fe6b880de557bf7775c6c904c50df21b6d2d963f (patch) | |
tree | 41582b9fd965d7cd894ef19af92cc0a3611c2c0c | |
parent | deab6f945c1ccf899f83d3db6cf03e1a8c72a432 (diff) | |
download | bcm5719-llvm-fe6b880de557bf7775c6c904c50df21b6d2d963f.tar.gz bcm5719-llvm-fe6b880de557bf7775c6c904c50df21b6d2d963f.zip |
[PCH/Modules] Don't tie TargetOptions::LinkerVersion to a module/PCH, it's a driver only thing and doesn't affect any language/preprocessor/etc. semantics.
rdar://16714526
llvm-svn: 207570
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Frontend/FrontendActions.cpp | 1 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 1 | ||||
-rw-r--r-- | clang/test/Modules/module_file_info.m | 1 | ||||
-rw-r--r-- | clang/test/PCH/different-linker-version.c | 17 |
6 files changed, 18 insertions, 6 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index d10edd81eab..4d0c01def12 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1819,7 +1819,7 @@ std::string CompilerInvocation::getModuleHash() const { // Extend the signature with the target options. code = hash_combine(code, TargetOpts->Triple, TargetOpts->CPU, - TargetOpts->ABI, TargetOpts->LinkerVersion); + TargetOpts->ABI); for (unsigned i = 0, n = TargetOpts->FeaturesAsWritten.size(); i != n; ++i) code = hash_combine(code, TargetOpts->FeaturesAsWritten[i]); diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index a8df7fd1cb8..c8b8a21c508 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -446,7 +446,6 @@ namespace { Out.indent(4) << " Triple: " << TargetOpts.Triple << "\n"; Out.indent(4) << " CPU: " << TargetOpts.CPU << "\n"; Out.indent(4) << " ABI: " << TargetOpts.ABI << "\n"; - Out.indent(4) << " Linker version: " << TargetOpts.LinkerVersion << "\n"; if (!TargetOpts.FeaturesAsWritten.empty()) { Out.indent(4) << "Target features:\n"; diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index c6aec4592ba..ccdf3fe10ae 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -219,7 +219,6 @@ static bool checkTargetOptions(const TargetOptions &TargetOpts, CHECK_TARGET_OPT(Triple, "target"); CHECK_TARGET_OPT(CPU, "target CPU"); CHECK_TARGET_OPT(ABI, "target ABI"); - CHECK_TARGET_OPT(LinkerVersion, "target linker version"); #undef CHECK_TARGET_OPT // Compare feature sets. @@ -4583,7 +4582,6 @@ bool ASTReader::ParseTargetOptions(const RecordData &Record, TargetOpts.Triple = ReadString(Record, Idx); TargetOpts.CPU = ReadString(Record, Idx); TargetOpts.ABI = ReadString(Record, Idx); - TargetOpts.LinkerVersion = ReadString(Record, Idx); for (unsigned N = Record[Idx++]; N; --N) { TargetOpts.FeaturesAsWritten.push_back(ReadString(Record, Idx)); } diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 7402961ae83..11b70e39253 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -1136,7 +1136,6 @@ void ASTWriter::WriteControlBlock(Preprocessor &PP, ASTContext &Context, AddString(TargetOpts.Triple, Record); AddString(TargetOpts.CPU, Record); AddString(TargetOpts.ABI, Record); - AddString(TargetOpts.LinkerVersion, Record); Record.push_back(TargetOpts.FeaturesAsWritten.size()); for (unsigned I = 0, N = TargetOpts.FeaturesAsWritten.size(); I != N; ++I) { AddString(TargetOpts.FeaturesAsWritten[I], Record); diff --git a/clang/test/Modules/module_file_info.m b/clang/test/Modules/module_file_info.m index 13e086ee48a..3c10780f253 100644 --- a/clang/test/Modules/module_file_info.m +++ b/clang/test/Modules/module_file_info.m @@ -19,7 +19,6 @@ // CHECK: Triple: // CHECK: CPU: // CHECK: ABI: -// CHECK: Linker version: // CHECK: Diagnostic options: // CHECK: IgnoreWarnings: Yes diff --git a/clang/test/PCH/different-linker-version.c b/clang/test/PCH/different-linker-version.c new file mode 100644 index 00000000000..9e2f38f674a --- /dev/null +++ b/clang/test/PCH/different-linker-version.c @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -target-linker-version 100 -emit-pch %s -o %t.h.pch +// RUN: %clang_cc1 -target-linker-version 200 %s -include-pch %t.h.pch -fsyntax-only -verify + +#ifndef HEADER +#define HEADER + +extern int foo; + +#else + +void f() { + int a = foo; + // Make sure we parsed this by getting an error. + int b = bar; // expected-error {{undeclared}} +} + +#endif |