anchor.diff:  * If there is more than one `#pragma shader_stage()` directive in the same
     translation unit, all the ``stage``s specified must be the same. Otherwise,
     glslc will issue an error.
  +
  +==== SPIR-V assembly files
  +
  +SPIR-V assembly input files should follow the
  +https://github.com/KhronosGroup/SPIRV-Tools/blob/master/syntax.md[syntax]
  +defined in the https://github.com/KhronosGroup/SPIRV-Tools[SPIRV-Tools]
  +project and have the `.spvasm` extension. Command line options treat SPIR-V
  +assembly files differently; some may ignore them, e.g., `<<option-cap-e,-E>>`,
  +`<<option-cap-s,-S>>`, and some may even treat them not as SPIR-V assembly
  +files, e.g., `<<shader-stage-with-spirv-assembly,-fshader-stage\=>>`.
   
   [[output-file-naming]]
   === Output file naming
  
positive.code: files are named by the rules in the <<output-file-naming,Output File Naming>>
  section.
  
  ==== `-E`
  
  `-E` tells the glslc compiler to run only the preprocessing stage. It overrides
  
negative.code: files are given, their preprocessed output are all written to standard output,
  in the order specified on the command line.
  
  glslc will do nothing for SPIR-V assembly files with this option.
  
  [[option-cap-s]]
  ==== `-S`
  
  `-S` tells the glslc compiler to run the preprocessing, compiling, and then
  disassembling stage. It overrides `-c`. Each input shader file results in a
  SPIR-V assembly file; these SPIR-V assembly files are named by the rules in the
  <<output-file-naming,Output File Naming>> section.
  
  glslc will do nothing for SPIR-V assembly files with this option.
  
  ==== No Compilation Stage Selection
  
  