Warn about code that uses variables and functions with internal linkage
without defining them. This should be an error, but I'm paranoid about "uses" that end up not actually requiring a definition. I'll revisit later. Also, teach IR generation to not set internal linkage on variable declarations, just for safety's sake. Doing so produces an invalid module if the variable is not ultimately defined. Also, fix several places in the test suite where we were using internal functions without definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126016 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/DiagnosticSemaKinds.td 5 additions, 0 deletionsinclude/clang/Basic/DiagnosticSemaKinds.td
- include/clang/Sema/Sema.h 4 additions, 0 deletionsinclude/clang/Sema/Sema.h
- lib/AST/Decl.cpp 14 additions, 2 deletionslib/AST/Decl.cpp
- lib/CodeGen/CodeGenModule.cpp 1 addition, 1 deletionlib/CodeGen/CodeGenModule.cpp
- lib/Sema/Sema.cpp 61 additions, 0 deletionslib/Sema/Sema.cpp
- lib/Sema/SemaExpr.cpp 19 additions, 7 deletionslib/Sema/SemaExpr.cpp
- test/Analysis/cxx-crashes.cpp 1 addition, 1 deletiontest/Analysis/cxx-crashes.cpp
- test/Analysis/misc-ps-64.m 1 addition, 1 deletiontest/Analysis/misc-ps-64.m
- test/CodeGen/regparm.c 1 addition, 2 deletionstest/CodeGen/regparm.c
- test/CodeGen/sizeof-vla.c 1 addition, 1 deletiontest/CodeGen/sizeof-vla.c
- test/CodeGenCXX/constructor-convert.cpp 1 addition, 1 deletiontest/CodeGenCXX/constructor-convert.cpp
- test/CodeGenCXX/internal-linkage.cpp 2 additions, 2 deletionstest/CodeGenCXX/internal-linkage.cpp
- test/CodeGenCXX/key-function-vtable.cpp 1 addition, 0 deletionstest/CodeGenCXX/key-function-vtable.cpp
- test/CodeGenCXX/thunks.cpp 21 additions, 23 deletionstest/CodeGenCXX/thunks.cpp
- test/Rewriter/properties.m 1 addition, 1 deletiontest/Rewriter/properties.m
- test/SemaCXX/undefined-internal.cpp 86 additions, 0 deletionstest/SemaCXX/undefined-internal.cpp
Loading
Please register or sign in to comment