Summary: | Mesa downsizes to i32 the types ulong and long | ||
---|---|---|---|
Product: | Mesa | Reporter: | klondike <klondike> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | 9.2 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
klondike
2013-10-04 20:01:10 UTC
I have been checking a bit around this issue, whilst modifying clc/clctypes.h to add "typedef unsigned __INT64_TYPE__ ulong;" works, doing the same with long doesn't, quite likely because it is a standard C type. I'm unsure on how to modify libclc or clang to fix this issue. The type sizes are supposed to be controlled by the TargetInfo class. TargetInfo::setForcedLangOptions() in clang/lib/basic/TargetInfo.cpp is where the type sizes are set for OpenCL. R600's TargetInfo is defined in clang/lib/basic/Target.cpp Maybe there is a bug in one of these two places. Also, if you invoke clang like this: clang -cc1 -E -dM -ffreestanding -triple=r600-- -std=cl -o - < /dev/null It will dump all of the default definitions for macros like __INT64_TYPE__ Yeah I found it, the issue is basically that the special case for OpenCL isn't defined at clang/lib/basic/TargetInfo.cpp on clang-3.3 I suppose it's a thing of waiting for clang-3.4 for this issue to get fixed. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.