i965: Use scope operator to ensure brw_reg is interpreted as a type.
authorMatt Turner <mattst88@gmail.com>
Tue, 24 Nov 2015 00:17:28 +0000 (16:17 -0800)
committerMatt Turner <mattst88@gmail.com>
Tue, 24 Nov 2015 17:58:33 +0000 (09:58 -0800)
In the next patch, I make backend_reg's inheritance from brw_reg
private, which confuses clang when it sees the type "struct brw_reg" in
the derived class constructors, thinking it is referring to the
privately inherited brw_reg:

brw_fs.cpp:366:23: error: 'brw_reg' is a private member of 'brw_reg'
fs_reg::fs_reg(struct brw_reg reg) :
                      ^
brw_shader.h:39:22: note: constrained by private inheritance here
struct backend_reg : private brw_reg
                     ^~~~~~~~~~~~~~~
brw_reg.h:232:8: note: member is declared here
struct brw_reg {
       ^

Avoid this by marking brw_reg with the scope resolution operator.

src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_ir_fs.h
src/mesa/drivers/dri/i965/brw_ir_vec4.h
src/mesa/drivers/dri/i965/brw_vec4.cpp

index 2e7b73f07c5d48557d8d6b84cb317957f81865de..c2f52ff9880df54089e2787643934258d186f366 100644 (file)
@@ -375,7 +375,7 @@ fs_reg::fs_reg()
    this->file = BAD_FILE;
 }
 
-fs_reg::fs_reg(struct brw_reg reg) :
+fs_reg::fs_reg(struct ::brw_reg reg) :
    backend_reg(reg)
 {
    this->reg_offset = 0;
index 0410053ce27af67e159ca6f0a3f3b2dd87bf0159..84ee529290846a6562812bbee519d3a0ce690ca0 100644 (file)
@@ -36,7 +36,7 @@ public:
    void init();
 
    fs_reg();
-   fs_reg(struct brw_reg reg);
+   fs_reg(struct ::brw_reg reg);
    fs_reg(enum brw_reg_file file, int nr);
    fs_reg(enum brw_reg_file file, int nr, enum brw_reg_type type);
 
index e2e66044d3abe87a6783b8568a320034f5f8993a..861d7b83e108132d9038de406ca9c6543c1e1784 100644 (file)
@@ -41,7 +41,7 @@ public:
 
    src_reg(enum brw_reg_file file, int nr, const glsl_type *type);
    src_reg();
-   src_reg(struct brw_reg reg);
+   src_reg(struct ::brw_reg reg);
 
    bool equals(const src_reg &r) const;
 
@@ -108,7 +108,7 @@ public:
            unsigned writemask);
    dst_reg(enum brw_reg_file file, int nr, brw_reg_type type,
            unsigned writemask);
-   dst_reg(struct brw_reg reg);
+   dst_reg(struct ::brw_reg reg);
    dst_reg(class vec4_visitor *v, const struct glsl_type *type);
 
    explicit dst_reg(const src_reg &reg);
index 9fc08573081fcf4b3701888dde28f0ffd8f095b2..5b1c045ca70e1c845ef7edb0b9d65ea0595765ec 100644 (file)
@@ -71,7 +71,7 @@ src_reg::src_reg()
    init();
 }
 
-src_reg::src_reg(struct brw_reg reg) :
+src_reg::src_reg(struct ::brw_reg reg) :
    backend_reg(reg)
 {
    this->reg_offset = 0;
@@ -128,7 +128,7 @@ dst_reg::dst_reg(enum brw_reg_file file, int nr, brw_reg_type type,
    this->writemask = writemask;
 }
 
-dst_reg::dst_reg(struct brw_reg reg) :
+dst_reg::dst_reg(struct ::brw_reg reg) :
    backend_reg(reg)
 {
    this->reg_offset = 0;