]> granicus.if.org Git - clang/commitdiff
[PCH/Modules] Don't tie TargetOptions::LinkerVersion to a module/PCH, it's a driver...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Tue, 29 Apr 2014 18:45:01 +0000 (18:45 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Tue, 29 Apr 2014 18:45:01 +0000 (18:45 +0000)
rdar://16714526

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

lib/Frontend/CompilerInvocation.cpp
lib/Frontend/FrontendActions.cpp
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTWriter.cpp
test/Modules/module_file_info.m
test/PCH/different-linker-version.c [new file with mode: 0644]

index d10edd81eab6b77c43d11f0031011cedf1004171..4d0c01def128e4623ef95a6f2886c9736f002479 100644 (file)
@@ -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]);
 
index a8df7fd1cb87c903716a263afaa03d3455164329..c8b8a21c508f2646db0eca47ffa8b2c35a3c75bd 100644 (file)
@@ -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";
index c6aec4592ba4d92186c4d4266fdcaf2dc011153e..ccdf3fe10ae608b07e26bc512605e4a1b0044f3c 100644 (file)
@@ -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));
   }
index 7402961ae83c57348bc6732a8d3fe23a56309d16..11b70e39253302c47ed4ef935a63cfeeb7becd20 100644 (file)
@@ -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);
index 13e086ee48a7745245ad8b504c22ac4d45805f4f..3c10780f2533b00ba54db7c260f9a69900b87c3a 100644 (file)
@@ -19,7 +19,6 @@
 // CHECK:     Triple:
 // CHECK:     CPU: 
 // CHECK:     ABI: 
-// CHECK:     Linker version: 
 
 // CHECK: Diagnostic options:
 // CHECK:   IgnoreWarnings: Yes
diff --git a/test/PCH/different-linker-version.c b/test/PCH/different-linker-version.c
new file mode 100644 (file)
index 0000000..9e2f38f
--- /dev/null
@@ -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