diff options
author | marha <marha@users.sourceforge.net> | 2013-09-10 10:38:33 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-09-10 10:42:30 +0200 |
commit | 2c1b75db27d66ff4760d624e44d1c1c6f42a4ca7 (patch) | |
tree | a32e3d5f8bb662ba5c14a72d97a553c4927c0b76 /mesalib/src/glsl/ir_reader.cpp | |
parent | d53900c52abc2402f978b72278712e4bcdbde9f2 (diff) | |
parent | 889d7dd8e94a5538f388cc619115bf5c0b6fc0b7 (diff) | |
download | vcxsrv-2c1b75db27d66ff4760d624e44d1c1c6f42a4ca7.tar.gz vcxsrv-2c1b75db27d66ff4760d624e44d1c1c6f42a4ca7.tar.bz2 vcxsrv-2c1b75db27d66ff4760d624e44d1c1c6f42a4ca7.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
fontconfig libX11 libXmu libxcb mesa xserver git update 10 Sep 2013
Conflicts:
mesalib/src/glsl/.gitignore
xorg-server/hw/xwin/InitOutput.c
xorg-server/hw/xwin/winclipboardwndproc.c
xorg-server/hw/xwin/winmultiwindowwm.c
xorg-server/hw/xwin/winsetsp.c
Diffstat (limited to 'mesalib/src/glsl/ir_reader.cpp')
-rw-r--r-- | mesalib/src/glsl/ir_reader.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/mesalib/src/glsl/ir_reader.cpp b/mesalib/src/glsl/ir_reader.cpp index f263fe810..ec35b682e 100644 --- a/mesalib/src/glsl/ir_reader.cpp +++ b/mesalib/src/glsl/ir_reader.cpp @@ -211,6 +211,12 @@ ir_reader::read_function(s_expression *expr, bool skip_body) return added ? f : NULL; } +static bool +always_available(const _mesa_glsl_parse_state *) +{ + return true; +} + void ir_reader::read_function_sig(ir_function *f, s_expression *expr, bool skip_body) { @@ -248,11 +254,15 @@ ir_reader::read_function_sig(ir_function *f, s_expression *expr, bool skip_body) hir_parameters.push_tail(var); } - ir_function_signature *sig = f->exact_matching_signature(&hir_parameters); + ir_function_signature *sig = + f->exact_matching_signature(state, &hir_parameters); if (sig == NULL && skip_body) { /* If scanning for prototypes, generate a new signature. */ - sig = new(mem_ctx) ir_function_signature(return_type); - sig->is_builtin = true; + /* ir_reader doesn't know what languages support a given built-in, so + * just say that they're always available. For now, other mechanisms + * guarantee the right built-ins are available. + */ + sig = new(mem_ctx) ir_function_signature(return_type, always_available); f->add_signature(sig); } else if (sig != NULL) { const char *badvar = sig->qualifiers_match(&hir_parameters); @@ -659,7 +669,7 @@ ir_reader::read_call(s_expression *expr) return NULL; } - ir_function_signature *callee = f->matching_signature(¶meters); + ir_function_signature *callee = f->matching_signature(state, ¶meters); if (callee == NULL) { ir_read_error(expr, "couldn't find matching signature for function " "%s", name->value()); |