glsl: Initialize ir_constant member const_elements in all constructors.
authorVinson Lee <vlee@freedesktop.org>
Fri, 18 Sep 2020 00:32:15 +0000 (17:32 -0700)
committerVinson Lee <vlee@freedesktop.org>
Tue, 22 Sep 2020 01:29:46 +0000 (18:29 -0700)
Fix defects reported by Coverity Scan.

Uninitialized pointer field (UNINIT_CTOR)
uninit_member: Non-static class member const_elements is not
initialized in this constructor nor in any functions that it calls.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6770>

src/compiler/glsl/ir.cpp

index 71be1e1..7b30de2 100644 (file)
@@ -724,6 +724,7 @@ ir_constant::ir_constant(const struct glsl_type *type,
 ir_constant::ir_constant(float16_t f16, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_FLOAT16, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -737,6 +738,7 @@ ir_constant::ir_constant(float16_t f16, unsigned vector_elements)
 ir_constant::ir_constant(float f, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_FLOAT, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -750,6 +752,7 @@ ir_constant::ir_constant(float f, unsigned vector_elements)
 ir_constant::ir_constant(double d, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_DOUBLE, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -763,6 +766,7 @@ ir_constant::ir_constant(double d, unsigned vector_elements)
 ir_constant::ir_constant(int16_t i16, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_INT16, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -776,6 +780,7 @@ ir_constant::ir_constant(int16_t i16, unsigned vector_elements)
 ir_constant::ir_constant(uint16_t u16, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_UINT16, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -789,6 +794,7 @@ ir_constant::ir_constant(uint16_t u16, unsigned vector_elements)
 ir_constant::ir_constant(unsigned int u, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_UINT, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -802,6 +808,7 @@ ir_constant::ir_constant(unsigned int u, unsigned vector_elements)
 ir_constant::ir_constant(int integer, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_INT, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -815,6 +822,7 @@ ir_constant::ir_constant(int integer, unsigned vector_elements)
 ir_constant::ir_constant(uint64_t u64, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_UINT64, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -828,6 +836,7 @@ ir_constant::ir_constant(uint64_t u64, unsigned vector_elements)
 ir_constant::ir_constant(int64_t int64, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_INT64, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {
@@ -841,6 +850,7 @@ ir_constant::ir_constant(int64_t int64, unsigned vector_elements)
 ir_constant::ir_constant(bool b, unsigned vector_elements)
    : ir_rvalue(ir_type_constant)
 {
+   this->const_elements = NULL;
    assert(vector_elements <= 4);
    this->type = glsl_type::get_instance(GLSL_TYPE_BOOL, vector_elements, 1);
    for (unsigned i = 0; i < vector_elements; i++) {