[LLVMbugs] [Bug 4234] New: LLVMCodeGen will not build with Visual Studio 2005

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue May 19 08:10:15 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=4234

           Summary: LLVMCodeGen will not build with Visual Studio 2005
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Keywords: build-problem
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: alan.s.king at gmail.com
                CC: llvmbugs at cs.uiuc.edu


After updating to the latest version of the trunk repository, LLVM would no
longer build properly in Visual Studio 2005, giving the following compiler
errors:

error C2888: 'LiveIntervals::InstrSlots' : symbol cannot be defined within
namespace 'llvm'     C:\llvm\include\llvm\CodeGen\LiveIntervalAnalysis.h     99

error C2888: 'LiveIntervals::SRInfo' : symbol cannot be defined within
namespace 'llvm' C:\llvm\include\llvm\CodeGen\LiveIntervalAnalysis.h     477

I decided to try and isolate the source of the problem by looking at the recent
changes to files involved with the LLVMCodeGen project and found that two
recently added files (Spiller.cpp/h) use the LiveIntervals class. Digging a
little deeper I found that Spiller.h was using an unusual form of in-line
predeclaration of four classes to function. I have no idea whether this is
technically a legal form of predeclaration, but it is not going well with the
compiler.

I have attached a patch for this file that performs the predeclaration in a
more usual manner found throughout the LLVM project files and fixes the
aforementioned compiler warnings in Visual Studio 2005.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list