[cfe-dev] A problem about builtin-type creation
peterlee
peterlee at cs.utah.edu
Tue Aug 5 11:05:55 PDT 2014
Hi Reid
Thanks a lot for your instant reply.
Yes, I am building everything in 32-bit mode, so would you please
point me out how to create the boolean type in a memory-aligned way?
Thanks
Peng
在 2014-08-05 10:48,Reid Kleckner 写道:
> It is asserting that the Type pointer is not 16 byte aligned. Types
> are generally constructed and uniqued in an ASTContext, which
> guarantees this alignment. See this at the top of Type.h:
>
> enum {
>
> TypeAlignmentInBits = 4,
> TypeAlignment = 1 << TypeAlignmentInBits
> };
>
> Presumably you are building 32-bit code, where the system malloc
> returns 8 byte aligned chunks.
>
> On Tue, Aug 5, 2014 at 10:11 AM, peterlee <peterlee at cs.utah.edu>
> wrote:
>
>> Dear All,
>>
>> I am using Clang/LLVM-3.3, at present, I am fixing an error about
>> creating a builtin type, the code is supposed to
>> generate a "boolean" type with the following code:
>>
>> clang::Type* bool_type = new
>> clang::BuiltinType(clang::BuiltinType::Bool);
>> params.push_back(klimt::NamedDecl(clang::QualType(bool_type, 0),
>> pname));
>>
>> I always encountered the error:
>>
>>
> /home/xxx/vendor/llvm-3.3/build32/Release+Asserts/../../include/llvm/ADT/PointerIntPair.h:100:
>> void llvm::PointerIntPair<PointerTy, IntBits, IntType,
>> PtrTraits>::initWithPointer(PointerTy) [with PointerTy = void*;
>> unsigned int IntBits = 1u; IntType = bool; PtrTraits =
>> llvm::PointerUnionUIntTraits<const clang::Type*, const
>> clang::ExtQuals*>]: Assertion `(PtrWord & ((1 <<
>> PtrTraits::NumLowBitsAvailable)-1)) == 0 && "Pointer is not
>> sufficiently aligned"' failed
>>
>> The assertion fails at the BuiltinType creation.
>>
>> Any thoughts about how to fix this error is highly appreciated!
>>
>> Thanks
>> Peng
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev [1]
>
>
>
> Links:
> ------
> [1] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list