diagnostic_filtering/function_attribute.wgsl:7:9 warning: 'textureSample' must only be called from uniform control flow
    _ = textureSample(t, s, vec2(0, 0));
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

diagnostic_filtering/function_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
  if (x > 0) {
  ^^

diagnostic_filtering/function_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
  if (x > 0) {
      ^

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 25
; Schema: 0
               OpCapability Shader
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %x_1
               OpExecutionMode %main OriginUpperLeft
               OpName %x_1 "x_1"
               OpName %t "t"
               OpName %s "s"
               OpName %main_inner "main_inner"
               OpName %x "x"
               OpName %main "main"
               OpDecorate %x_1 Location 0
               OpDecorate %t DescriptorSet 0
               OpDecorate %t Binding 1
               OpDecorate %s DescriptorSet 0
               OpDecorate %s Binding 2
      %float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
        %x_1 = OpVariable %_ptr_Input_float Input
          %6 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_6 = OpTypePointer UniformConstant %6
          %t = OpVariable %_ptr_UniformConstant_6 UniformConstant
          %9 = OpTypeSampler
%_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9
          %s = OpVariable %_ptr_UniformConstant_9 UniformConstant
       %void = OpTypeVoid
         %10 = OpTypeFunction %void %float
         %15 = OpConstantNull %float
       %bool = OpTypeBool
         %20 = OpTypeFunction %void
 %main_inner = OpFunction %void None %10
          %x = OpFunctionParameter %float
         %14 = OpLabel
         %16 = OpFOrdGreaterThan %bool %x %15
               OpSelectionMerge %18 None
               OpBranchConditional %16 %19 %18
         %19 = OpLabel
               OpBranch %18
         %18 = OpLabel
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %20
         %22 = OpLabel
         %24 = OpLoad %float %x_1
         %23 = OpFunctionCall %void %main_inner %24
               OpReturn
               OpFunctionEnd
