forked from Imagelibrary/binutils-gdb
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.
This commit is contained in:
20
gdb/eval.c
20
gdb/eval.c
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user