<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Problem Compiling file://tools/clang/lib/StaticAnalyzer/Core/clangStaticAnalyzerCore/DynamicTypeMap.cpp"
href="https://llvm.org/bugs/show_bug.cgi?id=26157">26157</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Problem Compiling file://tools/clang/lib/StaticAnalyzer/Core/clangStaticAnalyzerCore/DynamicTypeMap.cpp
</td>
</tr>
<tr>
<th>Product</th>
<td>Build scripts
</td>
</tr>
<tr>
<th>Version</th>
<td>3.8
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>cmake
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>laurent.delobel@etudiant.univ-bpclermont.fr
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>I'm trying to compile clang, with the following configuration:
- clang-3.8, trunk revision 257608
- compiled with gcc-4.8.1
- OS is 12.04LTS_32bits
- cmake version: cmake version 3.3.2
- svn version :svn, version 1.9.3 (r1718519)
While the same repository compiles fine under 14.04LTS_64bits-gcc-4.8.3, the
compile process blocks with file clang/lib/StaticAnalyzer/DynamicTypeMap.cpp.
I cant explain why this error doesn't show up under 14.04_64bits, but shows
under 12.04_32bits.
========== ERROR REPORT ==========
[ 69%] Building CXX object
tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/DynamicTypeMap.cpp.o
In file included from /llvm/tools/clang/lib/CodeGen/CGBuilder.h:14:0,
from /llvm/tools/clang/lib/CodeGen/CodeGenFunction.h:17,
from /llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp:15:
/llvm/tools/clang/lib/CodeGen/Address.h:111:31: error: cannot allocate an
object of abstract type ‘llvm::object::ObjectFile’
template <class U> inline U cast(clang::CodeGen::Address addr) {
^
In file included from /llvm/ProfileData/CoverageMappingReader.h:21:0,
from /llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp:20:
/llvm/Object/ObjectFile.h:175:7: note: because the following virtual
functions are pure within ‘llvm::object::ObjectFile’:
class ObjectFile : public SymbolicFile {
^
In file included from /llvm/Object/ObjectFile.h:18:0,
from /llvm/ProfileData/CoverageMappingReader.h:21,
from /llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp:20:
/llvm/Object/SymbolicFile.h:132:16: note: virtual void
llvm::object::SymbolicFile::moveSymbolNext(llvm::object::DataRefImpl&) const
virtual void moveSymbolNext(DataRefImpl &Symb) const = 0;
^
/llvm/Object/SymbolicFile.h:137:20: note: virtual uint32_t
llvm::object::SymbolicFile::getSymbolFlags(llvm::object::DataRefImpl) const
virtual uint32_t getSymbolFlags(DataRefImpl Symb) const = 0;
^
/llvm/Object/SymbolicFile.h:139:33: note: virtual
llvm::object::basic_symbol_iterator
llvm::object::SymbolicFile::symbol_begin_impl() const
virtual basic_symbol_iterator symbol_begin_impl() const = 0;
^
/llvm/Object/SymbolicFile.h:141:33: note: virtual
llvm::object::basic_symbol_iterator
llvm::object::SymbolicFile::symbol_end_impl() const
virtual basic_symbol_iterator symbol_end_impl() const = 0;
^
In file included from /llvm/ProfileData/CoverageMappingReader.h:21:0,
from /llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp:20:
/llvm/Object/ObjectFile.h:196:30: note: virtual
llvm::ErrorOr<llvm::StringRef>
llvm::object::ObjectFile::getSymbolName(llvm::object::DataRefImpl) const
virtual ErrorOr<StringRef> getSymbolName(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:199:29: note: virtual llvm::ErrorOr<long long
unsigned int>
llvm::object::ObjectFile::getSymbolAddress(llvm::object::DataRefImpl) const
virtual ErrorOr<uint64_t> getSymbolAddress(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:200:20: note: virtual uint64_t
llvm::object::ObjectFile::getSymbolValueImpl(llvm::object::DataRefImpl) const
virtual uint64_t getSymbolValueImpl(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:202:20: note: virtual uint64_t
llvm::object::ObjectFile::getCommonSymbolSizeImpl(llvm::object::DataRefImpl)
const
virtual uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:203:27: note: virtual
llvm::object::SymbolRef::Type
llvm::object::ObjectFile::getSymbolType(llvm::object::DataRefImpl) const
virtual SymbolRef::Type getSymbolType(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:205:3: note: virtual
llvm::ErrorOr<llvm::object::content_iterator<llvm::object::SectionRef> >
llvm::object::ObjectFile::getSymbolSection(llvm::object::DataRefImpl) const
getSymbolSection(DataRefImpl Symb) const = 0;
^
/llvm/Object/ObjectFile.h:209:16: note: virtual void
llvm::object::ObjectFile::moveSectionNext(llvm::object::DataRefImpl&) const
virtual void moveSectionNext(DataRefImpl &Sec) const = 0;
^
/llvm/Object/ObjectFile.h:210:27: note: virtual std::error_code
llvm::object::ObjectFile::getSectionName(llvm::object::DataRefImpl,
llvm::StringRef&) const
virtual std::error_code getSectionName(DataRefImpl Sec,
^
/llvm/Object/ObjectFile.h:212:20: note: virtual uint64_t
llvm::object::ObjectFile::getSectionAddress(llvm::object::DataRefImpl) const
virtual uint64_t getSectionAddress(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:213:20: note: virtual uint64_t
llvm::object::ObjectFile::getSectionSize(llvm::object::DataRefImpl) const
virtual uint64_t getSectionSize(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:214:27: note: virtual std::error_code
llvm::object::ObjectFile::getSectionContents(llvm::object::DataRefImpl,
llvm::StringRef&) const
virtual std::error_code getSectionContents(DataRefImpl Sec,
^
/llvm/Object/ObjectFile.h:216:20: note: virtual uint64_t
llvm::object::ObjectFile::getSectionAlignment(llvm::object::DataRefImpl) const
virtual uint64_t getSectionAlignment(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:217:16: note: virtual bool
llvm::object::ObjectFile::isSectionText(llvm::object::DataRefImpl) const
virtual bool isSectionText(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:218:16: note: virtual bool
llvm::object::ObjectFile::isSectionData(llvm::object::DataRefImpl) const
virtual bool isSectionData(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:219:16: note: virtual bool
llvm::object::ObjectFile::isSectionBSS(llvm::object::DataRefImpl) const
virtual bool isSectionBSS(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:221:16: note: virtual bool
llvm::object::ObjectFile::isSectionVirtual(llvm::object::DataRefImpl) const
virtual bool isSectionVirtual(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:222:31: note: virtual
llvm::object::relocation_iterator
llvm::object::ObjectFile::section_rel_begin(llvm::object::DataRefImpl) const
virtual relocation_iterator section_rel_begin(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:223:31: note: virtual
llvm::object::relocation_iterator
llvm::object::ObjectFile::section_rel_end(llvm::object::DataRefImpl) const
virtual relocation_iterator section_rel_end(DataRefImpl Sec) const = 0;
^
/llvm/Object/ObjectFile.h:228:16: note: virtual void
llvm::object::ObjectFile::moveRelocationNext(llvm::object::DataRefImpl&) const
virtual void moveRelocationNext(DataRefImpl &Rel) const = 0;
^
/llvm/Object/ObjectFile.h:229:20: note: virtual uint64_t
llvm::object::ObjectFile::getRelocationOffset(llvm::object::DataRefImpl) const
virtual uint64_t getRelocationOffset(DataRefImpl Rel) const = 0;
^
/llvm/Object/ObjectFile.h:230:27: note: virtual
llvm::object::symbol_iterator
llvm::object::ObjectFile::getRelocationSymbol(llvm::object::DataRefImpl) const
virtual symbol_iterator getRelocationSymbol(DataRefImpl Rel) const = 0;
^
/llvm/Object/ObjectFile.h:231:20: note: virtual uint64_t
llvm::object::ObjectFile::getRelocationType(llvm::object::DataRefImpl) const
virtual uint64_t getRelocationType(DataRefImpl Rel) const = 0;
^
/llvm/Object/ObjectFile.h:232:16: note: virtual void
llvm::object::ObjectFile::getRelocationTypeName(llvm::object::DataRefImpl,
llvm::SmallVectorImpl<char>&) const
virtual void getRelocationTypeName(DataRefImpl Rel,
^
/llvm/Object/ObjectFile.h:248:28: note: virtual
llvm::object::section_iterator llvm::object::ObjectFile::section_begin() const
virtual section_iterator section_begin() const = 0;
^
/llvm/Object/ObjectFile.h:249:28: note: virtual
llvm::object::section_iterator llvm::object::ObjectFile::section_end() const
virtual section_iterator section_end() const = 0;
^
/llvm/Object/ObjectFile.h:258:19: note: virtual uint8_t
llvm::object::ObjectFile::getBytesInAddress() const
virtual uint8_t getBytesInAddress() const = 0;
^
/llvm/Object/ObjectFile.h:260:21: note: virtual llvm::StringRef
llvm::object::ObjectFile::getFileFormatName() const
virtual StringRef getFileFormatName() const = 0;
^
/llvm/Object/ObjectFile.h:261:43: note: virtual unsigned int
llvm::object::ObjectFile::getArch() const
virtual /* Triple::ArchType */ unsigned getArch() const = 0;
^
/llvm/Object/ObjectFile.h:270:16: note: virtual bool
llvm::object::ObjectFile::isRelocatableObject() const
virtual bool isRelocatableObject() const = 0;
^
========== END OF ERROR ==========</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>