• G
    Clang build fixes (#15628) · da9c94da
    Gabor Buella 提交于
    * Remove some superfluous std::move calls
    
    The std:move triggered a build error (with -Werror):
    ```
    [  9%] Building CXX object paddle/fluid/memory/allocation/CMakeFiles/allocator_facade.dir/allocator_facade.cc.o
    /home/tej/code/gbuella_paddle/paddle/fluid/memory/allocation/allocator_facade.cc:86:29: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
                [this] { return std::move(CreateAllocatorWithChunk()); }, capacity);
                                ^
    /home/tej/code/gbuella_paddle/paddle/fluid/memory/allocation/allocator_facade.cc:86:29: note: remove std::move call here
                [this] { return std::move(CreateAllocatorWithChunk()); }, capacity);
                                ^~~~~~~~~~                          ~
    1 error generated.
    ```
    
    See: https://reviews.llvm.org/D7633
    
    * Remove a superfluous lambda capture from framework/operator.h
    
    ```
    [ 10%] Building CXX object paddle/fluid/platform/CMakeFiles/device_context.dir/init.cc.o
    In file included from /home/tej/code/gbuella_paddle/paddle/fluid/platform/init.cc:19:
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/operator.h:229:21: error: lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture]
                       [this](Variable* var) { return var; });
                        ^~~~
    1 error generated.
    ```
    
    Changing it to `return it->second;`, as is in the function below.
    
    * Rethrow an exception (instead of copying it)
    
    ```
    [ 11%] Building CXX object paddle/fluid/framework/CMakeFiles/operator.dir/operator.cc.o
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/operator.cc:191:13: error: local variable 'exception' will be copied despite being thrown by name [-Werror,-Wreturn-std-move]
          throw exception;
                ^~~~~~~~~
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/operator.cc:191:13: note: call 'std::move' explicitly to avoid copying
          throw exception;
                ^~~~~~~~~
                std::move(exception)
    
    ```
    
    See https://reviews.llvm.org/D43322 for an explanation of this diagnostic message.
    
    * Remove an unused variable
    
    ```
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/operator.cc:884:16: error: private field 'scope_' is not used [-Werror,-Wunused-private-field]
      const Scope& scope_;
                   ^
    ```
    
    * struct ComputationOpHandle -> class ComputationOpHandle
    
    ```
    [ 13%] Building CXX object paddle/fluid/framework/details/CMakeFiles/memory_early_delete_pass.dir/memory_early_delete_pass.cc.o
    In file included from /home/tej/code/gbuella_paddle/paddle/fluid/framework/details/memory_early_delete_pass.cc:21:
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/details/reference_count_pass_helper.h:30:1: error: class 'ComputationOpHandle' was previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Werror,-Wmismatched-tags]
    class ComputationOpHandle;
    ^
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/details/computation_op_handle.h:29:8: note: previous use is here
    struct ComputationOpHandle : public OpHandleBase {
           ^
    /home/tej/code/gbuella_paddle/paddle/fluid/framework/details/reference_count_pass_helper.h:30:1: note: did you mean struct here?
    class ComputationOpHandle;
    ^~~~~
    struct
    1 error generated.
    ```
    
    * Fix name() methods under fluid/operators
    
    ```
    In file included from /home/tej/code/gbuella_paddle/paddle/fluid/operators/jit/gen/act.cc:15:
    In file included from /home/tej/code/gbuella_paddle/paddle/fluid/operators/jit/gen/act.h:19:
    /home/tej/code/gbuella_paddle/paddle/fluid/operators/jit/gen/jitcode.h:71:23: error: 'name' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
      virtual const char* name() const = 0;
                          ^
    /home/tej/code/gbuella_paddle/paddle/fluid/operators/jit/gen_base.h:31:23: note: overridden virtual function is here
      virtual const char* name() const = 0;
                          ^
    ```
    
    test=develop
    da9c94da
ir_pass_manager.cc 4.4 KB