• D
    annotate all mocked functions with noinline · 728cacc8
    Daniel P. Berrange 提交于
    CLang's optimizer is more aggressive at inlining functions than
    gcc and so will often inline functions that our tests want to
    mock-override. This causes the test to fail in bizarre ways.
    
    We don't want to disable inlining completely, but we must at
    least prevent inlining of mocked functions. Fortunately there
    is a 'noinline' attribute that lets us control this per function.
    
    A syntax check rule is added that parses tests/*mock.c to extract
    the list of functions that are mocked (restricted to names starting
    with 'vir' prefix). It then checks that src/*.h header file to
    ensure it has a 'ATTRIBUTE_NOINLINE' annotation. This should prevent
    use from bit-rotting in future.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    728cacc8
cfg.mk 47.1 KB