So here are the facts;
I create an OpenGL 3.2 Core Profile Context and make it the active context, calling glFlush() or glFinish() immediately afterwards works just fine, but as soon as there actually is something to flush (eg. after creating a texture and submitting data for it, or creating a VBO, VAO, allocating render buffer storage, whatever) the functions will crash in atioglxx.dll. This happens on a Windows 7 64bit machine (running on a MacBook Pro 17" late 2011 with a AMD Radeon HD 6700M, driver version is 8.982.0.0 according to Windows), the application is a Win32 application compiled with Visual Studio 2012.
Here is the code used to create the OpenGL Context (note that I removed all error checks for readability, obviously the real version does check for errors):
I know that there is no real need for glFlush() or glFinish() in a single context application, however, I need this to synchronize multiple OpenGL contexts with each other (however, it crashes regardless of the number of OpenGL contexts). So yeah, I'm a bit lost here and would be happy for any pointers into the right direction.
Turns out that there as an incomplete texture that I totally forgot about. The Apple ATI driver and the Windows Nvidia drivers swallow this just fine so I never noticed it until trying to run it on Windows with my ATI card.