# Copyright (c) 2016 - present Facebook, Inc. # All rights reserved. # # This source code is licensed under the BSD style license found in the # LICENSE file in the root directory of this source tree. An additional grant # of patent rights can be found in the PATENTS file in the same directory. include ../../Makefile.clang OPTIONS = -x c++ -std=c++11 -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ -c FILES = \ c_tests/*.cpp \ include_header/header.h \ include_header/include_templ.cpp \ memory_leaks/*.cpp \ models/*.cpp \ npe/*.cpp \ numeric/*.cpp \ overwrite_attribute/*.cpp \ resource_leaks/*.cpp \ shared/attributes/*.cpp \ shared/conditional/*.cpp \ shared/constructors/constructor_init.cpp \ shared/constructors/constructor_new.cpp \ shared/constructors/constructor_with_body.cpp \ shared/constructors/copy_move_constructor.cpp \ shared/constructors/temp_object.cpp \ shared/exceptions/Exceptions.cpp \ shared/lambda/*.cpp \ shared/methods/conversion_operator.cpp \ shared/methods/static.cpp \ shared/namespace/function.cpp \ shared/namespace/global_variable.cpp \ shared/methods/virtual_methods.cpp \ shared/nestedoperators/var_decl_inside_if.cpp \ shared/npe/*.cpp \ shared/reference/reference_field.cpp \ shared/reference/reference_struct_e2e.cpp \ shared/reference/reference_type_e2e.cpp \ shared/reference/temporary_lvalue.cpp \ shared/templates/class_template_instantiate.cpp \ shared/templates/function.cpp \ shared/templates/function_pack.cpp \ shared/templates/method.cpp \ shared/types/inheritance_field.cpp \ shared/types/operator_overload.cpp \ shared/types/return_struct.cpp \ shared/types/struct_forward_declare.cpp \ shared/types/struct_pass_by_value.cpp \ shared/types/typeid_expr.cpp \ smart_ptr/*.cpp \ subtyping/*.cpp \ vector/*.cpp \ compile: clang $(OPTIONS) $(FILES) analyze: $(call silent_on_success,$(INFER_BIN) -a $(ANALYZER) --cxx --ml-buckets cpp --check-duplicate-symbols -- clang $(OPTIONS) $(FILES) 2>duplicates.txt) grep "DUPLICATE_SYMBOLS" duplicates.txt; test $$? -ne 0