Bug 107305

Summary: glsl/opt_copy_propagation_elements.cpp:72:9: error: delegating constructors are permitted only in C++11
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Mesa coreAssignee: Caio Marcelo de Oliveira Filho <caio.oliveira>
Status: RESOLVED FIXED QA Contact: mesa-dev
Severity: normal    
Priority: medium Keywords: regression
Version: git   
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2018-07-20 08:35:12 UTC
CXX      glsl/opt_copy_propagation_elements.lo
glsl/opt_copy_propagation_elements.cpp:72:9: error: delegating constructors are permitted only in C++11
      : copy_propagation_state(NULL)
        ^~~~~~~~~~~~~~~~~~~~~~
Comment 1 Dylan Baker 2018-07-20 19:19:13 UTC
This is sorta my fault, meson builds all c++ code with C++11 as the std, so this works fine in meson.

At this point I think that just converting the glsl compiler to C++11 would be fine, all of the major compilers (GCC, Clang, MSVC) support most or all of C++11 at this point, and anyone building with modern LLVM support has to have it anyway.
Comment 2 Caio Marcelo de Oliveira Filho 2018-07-20 20:46:46 UTC
https://patchwork.freedesktop.org/patch/240128/
Comment 3 Caio Marcelo de Oliveira Filho 2018-07-23 18:47:51 UTC
Fixed by

commit 52d831ff83036773978aabf52dde3bb73bb211c7
Author: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Date:   Fri Jul 20 13:21:33 2018 -0700

    glsl: remove delegating constructors to allow build with C++98
    
    Delegating constructors is a C++11 feature, so this was breaking when
    compiling with C++98. Change the copy_propagation_state() calls that
    used the convenience constructor to use a static member function
    instead.
    
    Since copy_propagation_state is expected to be heap allocated, this
    change is a good fit.
    
    Tested-by: Vinson Lee <vlee@freedesktop.org>
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107305

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.