Displaying 6 results from an estimated 6 matches for "getasopaqueptr".
2012 Aug 09
3
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
I'm probably missing something simple here but in:
CGDebugInfo.h:
std::vector<std::pair<void *, llvm::WeakVH> >ReplaceMap;
but then in
CGDebugInfo.cpp:
llvm::DIType TC = getTypeOrNull(Ty);
void * v = Ty.getAsOpaquePtr();
std::pair<void *, llvm::WeakVH> tmp = std::make_pair(v, TC);
if (TC.Verify() && TC.isForwardDecl())
ReplaceMap.push_back(Ty.getTypeOrNull(), TC);
Note that TC is of type llvm:DIType and not WeakVH.
What am I missing, as this does not compile under Visual Studio 2012 RC?...
2012 Aug 09
1
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
...]
The reason it gives is std::pair<_Ty1,_Ty2>' to 'std::pair<_Ty3,_Ty4>, but as you point out there is indeed a conversion operator for DITYPE to WeakVH. Putting the explicit cast to give:
if (T.Verify() && T.isForwardDecl())
ReplaceMap.push_back(std::make_pair(Ty.getAsOpaquePtr(), (llvm::MDNode *)T));
and all it well again. This does indeed seem to be a bug in VS, unless there is some C++11 changes that stops implicit conversion under std::pair.
Regards,
Ben
- Benedict R. Gaster
Enjoy Berlin and submit a paper to Multiprog 2013: http://multiprog.ac.upc.edu/
> ----...
2012 Dec 01
1
llvm / clang does not build with new libc++
..../../../contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
-o CGDebugInfo.o
/usr/src/lib/clang/libclangcodegen/../../../contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp:1695:16:
error:
no matching member function for call to 'push_back'
ReplaceMap.push_back(std::make_pair(Ty.getAsOpaquePtr(), TC));
~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/v1/vector:676:36: note: candidate function not viable: no
known conversion from
'pair<typename __make_pair_return<void *>::type, typename
__make_pair_return<DIType
&>::type>' to 'const value_type' (...
2012 Aug 09
0
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
...> I’m probably missing something simple here but in:
>
> CGDebugInfo.h:
>
> std::vector<std::pair<void *, llvm::WeakVH> >ReplaceMap;
>
> but then in
>
> CGDebugInfo.cpp:
>
> llvm::DIType TC = getTypeOrNull(Ty);
>
> void * v = Ty.getAsOpaquePtr();
> std::pair<void *, llvm::WeakVH> tmp = std::make_pair(v, TC);
>
> if (TC.Verify() && TC.isForwardDecl())
> ReplaceMap.push_back(Ty.getTypeOrNull(), TC);
>
> Note that TC is of type llvm:DIType and not WeakVH.
>
> What am I missing, as this doe...
2016 Apr 01
0
[cfe-dev] RFC: Up front type information generation in clang and llvm
...p
@@ -1509,16 +1509,6 @@ void CGDebugInfo::completeRequiredType(const RecordDecl *RD) {
}
void CGDebugInfo::completeClassData(const RecordDecl *RD) {
- if (DebugKind <= codegenoptions::DebugLineTablesOnly)
- return;
- QualType Ty = CGM.getContext().getRecordType(RD);
- void *TyPtr = Ty.getAsOpaquePtr();
- auto I = TypeCache.find(TyPtr);
- if (I != TypeCache.end() && !cast<llvm::DIType>(I->second)->isForwardDecl())
- return;
- llvm::DIType *Res = CreateTypeDefinition(Ty->castAs<RecordType>());
- assert(!Res->isForwardDecl());
- TypeCache[TyPtr].reset(Res);...
2016 Mar 30
5
[cfe-dev] RFC: Up front type information generation in clang and llvm
On Tue, Mar 29, 2016 at 11:20 PM Robinson, Paul <
Paul_Robinson at playstation.sony.com> wrote:
> Skipping a serialization and doing something clever about LTO uniquing
> sounds awesome. I'm guessing you achieve this by extracting types out of
> DI metadata and packaging them as lumps-o-DWARF that the back-end can then
> paste together? Reading between the lines a bit