Eliminate "const" from extern const to fix breakeage since r135184 on msvc.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 15 Jul 2011 12:50:21 +0000 (12:50 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Fri, 15 Jul 2011 12:50:21 +0000 (12:50 +0000)
MSVC decorates (and distinguishes) "const" in mangler. It brought linkage error between "extern const" declarations and definitions.

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

lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
utils/TableGen/InstrInfoEmitter.cpp
utils/TableGen/RegisterInfoEmitter.cpp
utils/TableGen/SubtargetEmitter.cpp

index d671c0bdfaa0571c655269496fed76f4bee18349..325a3ed2ad366a1fbab3be38976ca4baea2de75e 100644 (file)
@@ -72,7 +72,7 @@
 ///
 
 namespace llvm {
-extern const MCInstrDesc ARMInsts[];
+extern MCInstrDesc ARMInsts[];
 }
 
 using namespace llvm;
index 0157b4eb0382685c62e3d0ad301fa218bc68f325..88d80a12eb3a24dc3f9c91cd2d51e6ae008d09dc 100644 (file)
@@ -30,7 +30,7 @@
 #include "MBlazeGenEDInfo.inc"
 
 namespace llvm {
-extern const MCInstrDesc MBlazeInsts[];
+extern MCInstrDesc MBlazeInsts[];
 }
 
 using namespace llvm;
index d3c2d6370a944e4549635cee4b7bf8d3a35cfa6b..5ebaf174655b47673778af494940e4903a65b3fa 100644 (file)
@@ -239,7 +239,7 @@ void InstrInfoEmitter::run(raw_ostream &OS) {
   OS << "#undef GET_INSTRINFO_CTOR\n";
 
   OS << "namespace llvm {\n";
-  OS << "extern const MCInstrDesc " << TargetName << "Insts[];\n";
+  OS << "extern MCInstrDesc " << TargetName << "Insts[];\n";
   OS << ClassName << "::" << ClassName << "(int SO, int DO)\n"
      << "  : TargetInstrInfoImpl(SO, DO) {\n"
      << "  InitMCInstrInfo(" << TargetName << "Insts, "
index 6ad6b408fd500dc866055f7a903358d1333ff753..65d4a9b02dfd74f0ce8734acaba216061ba058b3 100644 (file)
@@ -659,7 +659,7 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
   OS << "  }\n}\n\n";
 
   // Emit the constructor of the class...
-  OS << "extern const MCRegisterDesc " << TargetName << "RegDesc[];\n";
+  OS << "extern MCRegisterDesc " << TargetName << "RegDesc[];\n";
 
   OS << ClassName << "::" << ClassName
      << "()\n"
index de0a39c8c0ab048b589fcf298b65af46e6e7995e..978e91a1d6c0cce4f5c805fb3c98acc3c0f04f3b 100644 (file)
@@ -720,13 +720,13 @@ void SubtargetEmitter::run(raw_ostream &OS) {
   OS << "#undef GET_SUBTARGETINFO_CTOR\n";
 
   OS << "namespace llvm {\n";
-  OS << "extern const llvm::SubtargetFeatureKV " << Target << "FeatureKV[];\n";
-  OS << "extern const llvm::SubtargetFeatureKV " << Target << "SubTypeKV[];\n";
+  OS << "extern llvm::SubtargetFeatureKV " << Target << "FeatureKV[];\n";
+  OS << "extern llvm::SubtargetFeatureKV " << Target << "SubTypeKV[];\n";
   if (HasItineraries) {
-    OS << "extern const llvm::SubtargetInfoKV " << Target << "ProcItinKV[];\n";
-    OS << "extern const llvm::InstrStage " << Target << "Stages[];\n";
-    OS << "extern const unsigned " << Target << "OperandCycles[];\n";
-    OS << "extern const unsigned " << Target << "ForwardingPathes[];\n";
+    OS << "extern llvm::SubtargetInfoKV " << Target << "ProcItinKV[];\n";
+    OS << "extern llvm::InstrStage " << Target << "Stages[];\n";
+    OS << "extern unsigned " << Target << "OperandCycles[];\n";
+    OS << "extern unsigned " << Target << "ForwardingPathes[];\n";
   }
 
   OS << ClassName << "::" << ClassName << "(StringRef TT, StringRef CPU, "