diff options
author | Ken Werner <ken.werner@de.ibm.com> | 2010-11-05 14:31:30 +0000 |
---|---|---|
committer | Ken Werner <ken.werner@de.ibm.com> | 2010-11-05 14:31:30 +0000 |
commit | f4b8a18de7f165283091323b11e9e363dadb8b62 (patch) | |
tree | 5e42a431d5add30b82af29bebc879a9c49f6ef07 /gdb/eval.c | |
parent | aa291e2d99dd5e6be27b43c721fa92edae076138 (diff) | |
download | gdb-f4b8a18de7f165283091323b11e9e363dadb8b62.zip gdb-f4b8a18de7f165283091323b11e9e363dadb8b62.tar.gz gdb-f4b8a18de7f165283091323b11e9e363dadb8b62.tar.bz2 |
gdb:
* NEWS: Mention OpenCL C language support.
* Makefile.in (SFILES): Add opencl-lang.c.
(COMMON_OBS): Add opencl-lang.o.
* opencl-lang.c: New File
* defs.h (enum language): Add language_opencl.
* dwarf2read.c (read_file_scope): Handle DW_AT_producer for the
IBM XL C OpenCL compiler.
* c-lang.h: Include "parser-defs.h".
(evaluate_subexp_c): Declare.
* c-lang.c (evaluate_subexp_c): Remove the static qualifier.
(c_op_print_tab): Add declaration.
* eval.c (binop_promote): Handle language_opencl.
* c-exp.y: Lookup the primitive types instead of referring to the
builtins.
gdb/testsuite:
* Makefile.in (ALL_SUBDIRS): Add gdb.opencl.
* configure.ac (AC_OUTPUT): Add gdb.opencl/Makefile.
* configure: Regenerate.
* gdb.opencl/Makefile.in: New File.
* gdb.opencl/datatypes.exp: Likewise.
* gdb.opencl/datatypes.cl: Likewise.
* gdb.opencl/operators.exp: Likewise.
* gdb.opencl/operators.cl: Likewise.
* gdb.opencl/vec_comps.exp: Likewise.
* gdb.opencl/vec_comps.cl: Likewise.
* gdb.opencl/convs_casts.exp: Likewise.
* gdb.opencl/convs_casts.cl: Likewise.
* lib/opencl.exp: Likewise.
* lib/opencl_hostapp.c: Likewise.
* lib/opencl_kernel.cl: Likewise.
* lib/cl_util.c: Likewise.
* lib/cl_util.c: Likewise.
* gdb.base/default.exp (set language): Add "opencl" to the list of
languages.
gdb/doc:
* gdb.texinfo: (Summary) Add mention about OpenCL C language support.
(OpenCL C): New node.
Diffstat (limited to 'gdb/eval.c')
-rw-r--r-- | gdb/eval.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -603,6 +603,7 @@ binop_promote (const struct language_defn *language, struct gdbarch *gdbarch, case language_cplus: case language_asm: case language_objc: + case language_opencl: /* No promotion required. */ break; @@ -690,7 +691,24 @@ binop_promote (const struct language_defn *language, struct gdbarch *gdbarch, : builtin->builtin_long_long); } break; - + case language_opencl: + if (result_len <= TYPE_LENGTH (lookup_signed_typename + (language, gdbarch, "int"))) + { + promoted_type = + (unsigned_operation + ? lookup_unsigned_typename (language, gdbarch, "int") + : lookup_signed_typename (language, gdbarch, "int")); + } + else if (result_len <= TYPE_LENGTH (lookup_signed_typename + (language, gdbarch, "long"))) + { + promoted_type = + (unsigned_operation + ? lookup_unsigned_typename (language, gdbarch, "long") + : lookup_signed_typename (language, gdbarch,"long")); + } + break; default: /* For other languages the result type is unchanged from gdb version 6.7 for backward compatibility. |