<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><br>Sorry, I found I have quoted the wrong place of spec.<br>But the test is in git <a href="http://cgit.freedesktop.org/piglit/tree/tests/glslparsertest/glsl2/local-function-03.frag">http://cgit.freedesktop.org/piglit/tree/tests/glslparsertest/glsl2/local-function-03.frag</a><br><br><div></div><div id="divNeteaseMailCard"></div>quoted in spec section 4.2: <div><div><b><br></b></div><div><b> Function declarations (prototypes) cannot occur </b></div><div><b>inside of functions;</b> </div><div><br></div><div><div>The built-in functions are scoped in a scope outside the global scope users declare global variables in. </div><div>That is, a shader's global scope, available for user-defined functions and global variables, is nested inside </div><div>the scope containing the built-in functions. When a function name is redeclared in a nested scope, it hides </div><div>all functions declared with that name in the outer scope.<b> Function declarations (prototypes) cannot occur </b></div><div><b>inside of functions;</b> they must be at global scope, or for the built-in functions, outside the global scope, </div><div>otherwise a compile-time error results.</div></div></div><div><br></div><br><br><br><div></div><div id="divNeteaseMailCard"></div><br><pre><br>At 2013-11-25 15:54:50,"Chris Forbes" <chrisf@ijw.co.nz> wrote:
>I'm not sure you quoted the bit of spec you intended to, but that test
>looks pretty bogus at a first glance.
>
>-- Chris
>
>On Mon, Nov 25, 2013 at 8:08 PM, chris <wwzbwwzb@163.com> wrote:
>> Dear all,
>>
>> I run this test(glslparsertest/glsl2/local-function-03.frag),and I think it
>> is may be bug of piglit.
>>
>> As spec, this test should be fail, but pass, since declaration function in
>> not in global scope should be an error.
>>
>> Is there anyone noticed this test?
>>
>> // [config]
>> // expect_result: pass
>> // glsl_version: 1.10
>> //
>> // # NOTE: Config section was auto-generated from file
>> // # NOTE: 'glslparser.tests' at git revision
>> // # NOTE: 6cc17ae70b70d150aa1751f8e28db7b2a9bd50f0
>> // [end config]
>>
>> /* PASS - local function declarations are not allowed in GLSL 1.10. */
>> #version 110
>> void main() {
>> float foo(float x);
>> gl_FragColor = vec4(0.0, foo(0.5), 0.0, 1.0);
>> }
>>
>> float foo(float x) {
>> return x + 0.5;
>> }
>>
>> In glsl 1.1.0 section 6.1.1:
>> The const qualifier cannot be used with out or inout, or a compile-time
>> error results. The above is used
>> both for function declarations (i.e., prototypes) and for function
>> definitions. Hence, function definitions
>> can have unnamed arguments.
>>
>>
>>
>>
>>
>> _______________________________________________
>> Piglit mailing list
>> Piglit@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/piglit
>>
</pre></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>