In amd driver, if developers do not specify the layout location through either glBindAttribLocation() or write "layout (location=index)" in shader source, driver will default set color attribute location to zero, vertex attribute location to one (for example it is a simple application). And spec mentioned that "Vertex2*, Vertex3*, are Vertex4* commands are completely equivalent to the corresponding VertexAttrib* command with an index of zero".
Hence, if developers want to assume color attribute value (index is 0) using glVertexAttrib*(), the function will cannot be worked.
So it is better to check attributes location or specify layout location before assuming value using glVertexAttrib*().
Best wishes!
Crystal