diff --git a/llvm/lib/CodeGen/AsmPrinter/DIE.h b/llvm/lib/CodeGen/AsmPrinter/DIE.h
index 6eaa6ee..d76083a 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DIE.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DIE.h
@@ -30,7 +30,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEAbbrevData - Dwarf abbreviation data, describes one attribute of a
   /// Dwarf abbreviation.
-  class DIEAbbrevData {
+  class LLVM_LIBRARY_VISIBILITY DIEAbbrevData {
     /// Attribute - Dwarf attribute code.
     ///
     uint16_t Attribute;
@@ -53,7 +53,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEAbbrev - Dwarf abbreviation, describes the organization of a debug
   /// information object.
-  class DIEAbbrev : public FoldingSetNode {
+  class LLVM_LIBRARY_VISIBILITY DIEAbbrev : public FoldingSetNode {
     /// Tag - Dwarf tag code.
     ///
     uint16_t Tag;
@@ -107,7 +107,7 @@
   /// describes its organization.
   class DIEValue;
 
-  class DIE {
+  class LLVM_LIBRARY_VISIBILITY DIE {
   protected:
     /// Offset - Offset in debug info section.
     ///
@@ -188,7 +188,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEValue - A debug information entry value.
   ///
-  class DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEValue {
     virtual void anchor();
   public:
     enum {
@@ -228,7 +228,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEInteger - An integer value DIE.
   ///
-  class DIEInteger : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEInteger : public DIEValue {
     uint64_t Integer;
   public:
     explicit DIEInteger(uint64_t I) : DIEValue(isInteger), Integer(I) {}
@@ -270,7 +270,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEExpr - An expression DIE.
   //
-  class DIEExpr : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEExpr : public DIEValue {
     const MCExpr *Expr;
   public:
     explicit DIEExpr(const MCExpr *E) : DIEValue(isExpr), Expr(E) {}
@@ -298,7 +298,7 @@
   //===--------------------------------------------------------------------===//
   /// DIELabel - A label DIE.
   //
-  class DIELabel : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIELabel : public DIEValue {
     const MCSymbol *Label;
   public:
     explicit DIELabel(const MCSymbol *L) : DIEValue(isLabel), Label(L) {}
@@ -326,7 +326,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEDelta - A simple label difference DIE.
   ///
-  class DIEDelta : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEDelta : public DIEValue {
     const MCSymbol *LabelHi;
     const MCSymbol *LabelLo;
   public:
@@ -352,7 +352,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEString - A container for string values.
   ///
-  class DIEString : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEString : public DIEValue {
     const DIEValue *Access;
     const StringRef Str;
 
@@ -383,7 +383,7 @@
   /// DIEEntry - A pointer to another debug information entry.  An instance of
   /// this class can also be used as a proxy for a debug information entry not
   /// yet defined (ie. types.)
-  class DIEEntry : public DIEValue {
+  class LLVM_LIBRARY_VISIBILITY DIEEntry : public DIEValue {
     DIE *const Entry;
   public:
     explicit DIEEntry(DIE *E) : DIEValue(isEntry), Entry(E) {
@@ -417,7 +417,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEBlock - A block of values.  Primarily used for location expressions.
   //
-  class DIEBlock : public DIEValue, public DIE {
+  class LLVM_LIBRARY_VISIBILITY DIEBlock : public DIEValue, public DIE {
     unsigned Size;                // Size in bytes excluding size header.
   public:
     DIEBlock()
diff --git a/llvm/lib/CodeGen/AsmPrinter/DIEHash.h b/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
index b792aea..d0bf34c 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
@@ -19,7 +19,7 @@
 
 /// \brief An object containing the capability of hashing and adding hash
 /// attributes onto a DIE.
-class DIEHash {
+class LLVM_LIBRARY_VISIBILITY DIEHash {
   // The entry for a particular attribute.
   struct AttrEntry {
     const DIEValue *Val;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h b/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
index 7627313..1ea0bfb 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
@@ -65,7 +65,7 @@
 class DIE;
 class DwarfUnits;
 
-class DwarfAccelTable {
+class LLVM_LIBRARY_VISIBILITY DwarfAccelTable {
 
   static uint32_t HashDJB(StringRef Str) {
     uint32_t h = 5381;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
index ecffb25..2a8b648 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
@@ -34,7 +34,7 @@
 //===----------------------------------------------------------------------===//
 /// CompileUnit - This dwarf writer support class manages information associated
 /// with a source file.
-class CompileUnit {
+class LLVM_LIBRARY_VISIBILITY CompileUnit {
   /// UniqueID - a numeric ID unique among all CUs in the module
   ///
   unsigned UniqueID;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
index c702180..43d8141 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -44,7 +44,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \brief This class is used to record source line correspondence.
-class SrcLineInfo {
+class LLVM_LIBRARY_VISIBILITY SrcLineInfo {
   unsigned Line;                     // Source line number.
   unsigned Column;                   // Source column.
   unsigned SourceID;                 // Source ID number.
@@ -62,7 +62,7 @@
 
 /// \brief This struct describes location entries emitted in the .debug_loc
 /// section.
-class DotDebugLocEntry {
+class LLVM_LIBRARY_VISIBILITY DotDebugLocEntry {
   // Begin and end symbols for the address range that this location is valid.
   const MCSymbol *Begin;
   const MCSymbol *End;
@@ -143,7 +143,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \brief This class is used to track local variable information.
-class DbgVariable {
+class LLVM_LIBRARY_VISIBILITY DbgVariable {
   DIVariable Var;                    // Variable Descriptor.
   DIE *TheDIE;                       // Variable DIE.
   unsigned DotDebugLocOffset;        // Offset in DotDebugLocEntries.
@@ -212,7 +212,7 @@
 
 /// \brief Collects and handles information specific to a particular
 /// collection of units.
-class DwarfUnits {
+class LLVM_LIBRARY_VISIBILITY DwarfUnits {
   // Target of Dwarf emission, used for sizing of abbreviations.
   AsmPrinter *Asm;
 
@@ -301,7 +301,7 @@
 };
 
 /// \brief Collects and handles dwarf debug information.
-class DwarfDebug {
+class LLVM_LIBRARY_VISIBILITY DwarfDebug {
   // Target of Dwarf emission.
   AsmPrinter *Asm;
 
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfException.h b/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
index 49a85d8..fe86184 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
@@ -34,7 +34,7 @@
 //===----------------------------------------------------------------------===//
 /// DwarfException - Emits Dwarf exception handling directives.
 ///
-class DwarfException {
+class LLVM_LIBRARY_VISIBILITY DwarfException {
 protected:
   /// Asm - Target of Dwarf emission.
   AsmPrinter *Asm;
@@ -141,7 +141,7 @@
   virtual void EndFunction();
 };
 
-class DwarfCFIException : public DwarfException {
+class LLVM_LIBRARY_VISIBILITY DwarfCFIException : public DwarfException {
   /// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality
   /// should be emitted.
   bool shouldEmitPersonality;
@@ -175,7 +175,7 @@
   virtual void EndFunction();
 };
 
-class ARMException : public DwarfException {
+class LLVM_LIBRARY_VISIBILITY ARMException : public DwarfException {
   void EmitTypeInfos(unsigned TTypeEncoding);
 public:
   //===--------------------------------------------------------------------===//
@@ -196,7 +196,7 @@
   virtual void EndFunction();
 };
 
-class Win64Exception : public DwarfException {
+class LLVM_LIBRARY_VISIBILITY Win64Exception : public DwarfException {
   /// shouldEmitPersonality - Per-function flag to indicate if personality
   /// info should be emitted.
   bool shouldEmitPersonality;
