aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-10-06Expose __builtin_bswap16.Benjamin Kramer
GCC has always supported this on PowerPC and 4.8 supports it on all platforms, so it's a good idea to expose it in clang too. LLVM supports this on all targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06Place warn_impcast_different_enum_types in a new warning group, ↵Ted Kremenek
-Wenum-conversion, that is a subgroup of -Wconversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165361 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06Add link to potential future checkers.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165360 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06Add list of potential checkers. Provided by Anton Yartsev!Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165359 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06[analyzer] Tweak test to run the retain-count checker even on non-Darwin.Jordan Rose
This should fix the bots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165358 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06ParentMap: Restore the ability to update an existing map.Jordan Rose
The Clang ASTs are a DAG, not a pure tree. However, ParentMap has to choose a single parent for each object. In the main (only?) cases in which the AST forms a DAG, it protects from multiple traversal by using OpaqueValueExprs. Previously, ParentMap would just unconditionally look through all OpaqueValueExprs when building its map. In order to make this behavior better for the analyzer's diagnostics, ParentMap was changed to not set a statement's parent if there already was one in the map. However, ParentMap is supposed to allow updating existing mappings by calling addStmt once again. This change makes the "transparency" of OpaqueValueExprs explicit, and disables it when it is not desired, rather than checking the current contents of the map. This new code seems like a big change, but it should actually have essentially the same performance as before. Only OpaqueValueExprs and their users (PseudoObjectExpr and BinaryConditionalOperator) will have any different behavior. There should be no user-visible functionality change, though a test has been added for the current behavior of BinaryConditionalOperator source locations and accompanying Xcode arrows (which are not so great...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06[analyzer] Handle implicit statements used for end-of-path nodes' source locs.Jordan Rose
Some implicit statements, such as the implicit 'self' inserted for "free" Objective-C ivar access, have invalid source locations. If one of these statements is the location where an issue is reported, we'll now look at the enclosing statements for a valid source location. <rdar://problem/12446776> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165354 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06[libclang] Fix the comments, as suggested by Dmitri.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165353 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-06[libclang] Don't disable the preprocessing record while indexing so asArgyrios Kyrtzidis
to not mess up with module building. It was not worth trying to combine indexing without preprocessing record and building modules with one because: -just importing a module/PCH that was built with a pp record, enables it anyway -the performance gain of indexing without the preprocessing record is insignificant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Fix another spot where this test varied for a Release build.Alex Rosenberg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165347 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Make test resilient to Release build temp names.Alex Rosenberg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165345 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Propagate calling convention for aliases and weakrefs.Alex Rosenberg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165343 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05FileCheckize testAlex Rosenberg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Thread-safety analysis: allow attributes on constructors to refer to 'this'.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165339 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Add color output to 'diagtool tree' to show what warnings are enabled by ↵Ted Kremenek
default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Changing line endings from Windows to Unix. No functional changes.Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165329 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Add intrinsic of MULX in BMI2 headerMichael Liao
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165325 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Added forgotten break.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Make sure to generate the right kind of MDNode for enum forward declarations.Eli Friedman
PR14029, clang part. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165289 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Workaround for libstdc++4.6 <atomic> bug: make comment more explicit about ↵Richard Smith
what's going on, per Sean Silva's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165286 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05Implement -Wshift-op-parentheses for: a << b + cDavid Blaikie
This appears to be consistent with GCC's implementation of the same warning under -Wparentheses. Suppressing a << b + c for cases where 'a' is a user defined type for compatibility with C++ stream IO. Otherwise suggest parentheses around the addition or subtraction subexpression. (this came up when MSVC was complaining (incorrectly, so far as I can tell) about a perceived violation of this within the LLVM codebase, PR14001) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165283 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05[libclang] Now that we have a CXModule object, pass it to theArgyrios Kyrtzidis
importedASTFile indexing callback. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165281 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05[libclang] Introduce new C functions that provide information about modules:Argyrios Kyrtzidis
clang_Cursor_getModule clang_Module_getParent clang_Module_getName clang_Module_getFullName clang_Module_getNumTopLevelHeaders clang_Module_getTopLevelHeader git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165280 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05[Modules] Introduce Module::TopHeaders which is a set of top-level headersArgyrios Kyrtzidis
that are associated with a (sub)module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165279 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05[preprocessing record] Have PPEntityID be independent of the size of theArgyrios Kyrtzidis
loaded entities vector, otherwise its meaning will change when a module is imported and the vector size changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165278 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05[libclang] Introduce CXCursor_ModuleImportDecl cursor kind, used for a moduleArgyrios Kyrtzidis
import declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165277 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Test case for r165275.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165276 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04If we flow off the end of a value-returning function:Richard Smith
- outside C++, return undef (behavior is not undefined unless the value is used) - in C++, with -fcatch-undefined-behavior, perform an appropriate trap - in C++, produce an 'unreachable' (behavior is undefined immediately) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165273 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04libstdc++-4.6 needs the same common_type fix as libstdc++-4.7. Other than that,Richard Smith
Clang can now cope with its eccentricities in C++11 mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165265 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Egriegious hack to support libstdc++4.6's broken <atomic> header, which definesRichard Smith
a non-inline namespace, then reopens it as inline to try to add its symbols to the surrounding namespace. In this one special case, permit the namespace to be reopened as inline, and patch up the name lookup tables to match. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165263 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fixed FunctionTypeLoc source range.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165259 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fixed instantiated operators source range.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165258 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fixed friend decl source range.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165257 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fixed ParamDecl source range for implicit typed k&r parameters.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165256 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fix the CodeGen/ppc64-varargs-struct.c test case to tolerate release builds.Bill Schmidt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165247 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Add a test case for r156143, which enabled general varargs support for theBill Schmidt
64-bit PPC SVR4 ABI. The test verifies passing of structures, items with 16-byte alignment, and small items that are passed right-justified in the parameter save area slot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165245 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Driver: Link crtfastmath.o if it's available and -ffast-math is specified.Benjamin Kramer
crtfastmath.o contains routines to set the floating point flags to a faster, unsafe mode. Linking it in speeds up code dealing with denormals significantly (PR14024). For now this is only enabled on linux where I can test it and crtfastmath.o is widely available. We may want to provide a similar file with compiler-rt eventually and/or enable it on other platforms too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165240 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fix scope location when parsing GNU attributes.Michael Han
For GNU attributes, instead of reusing attribute source location for the scope location, use SourceLocation() since GNU attributes don not have scope tokens. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165234 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Revert 165129Preston Gurd
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165231 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Prefer StringRef::startswith to the strncmp/strlen contraption.Benjamin Kramer
This may be slightly more efficient and is definitely more readable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165217 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fix typo in comments.Logan Chien
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165216 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fix r165005: The lexical DeclContext is not the right place to make a ↵Axel Naumann
decision about whether we need to call tryAddTopLevelDecl or not. That call should be made when the DeclContext's redeclaration context is the translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Add missing comment for mangling.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165202 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Fail early with a clear assert if an operation with multiple uses somehow endsLang Hames
up being contracted during codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165197 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Test file-scoped FP_CONTRACT pragma.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165196 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04Permanently end the whole "pragma got handled by the parser too early"Eli Friedman
mess by handling all pragmas which the parser touches uniformly. <rdar://problem/12248901>, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165195 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-03Add an explicit -object_path_lto flag during linking with a uniquified temporaryBill Wendling
file name if building Apple-style. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165184 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-03use ';' instead of '-' in the note part of my last patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165177 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-03Update test case for r165174.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165175 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-03tblgen: Migrate clang-tblgen to new TableGenMain API.Sean Silva
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165167 91177308-0d34-0410-b5e6-96231b3b80d8