- Apr 24, 2013
-
-
Chad Rosier authored
Part of rdar://13622687 llvm-svn: 180207
-
Chad Rosier authored
Part of rdar://13622687 llvm-svn: 180206
-
Chad Rosier authored
Specifically, allow the flags that fall under this umbrella (i.e., -O3, -ffast-math, and -fstrict-aliasing) to be overridden/disabled with the individual -O[0|1|2|s|z]/-fno- flags. This also fixes the handling of various floating point optimization flags that are modified by -ffast-math (and thus -Ofast as well). Part of rdar://13622687 llvm-svn: 180204
-
Fariborz Jahanian authored
categories, do not report when they are declared in primary class, class's protocol, or one of it super classes. This is because, its class is going to implement them. // rdar://13713098 llvm-svn: 180198
-
Alexander Kornienko authored
Summary: Added support for multiple input files, that can be used both with and without in-place edit (-i) option. Added checks for -offset and -length options: don't allow them on multiple files, check that they don't fall outside input file, made both options unsigned, so that there's no need to check for negative values. Removed "-1 can be used for end-of-file" from -length description. Reviewers: djasper, klimek Reviewed By: djasper CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D719 llvm-svn: 180185
-
Ted Kremenek authored
tweak warning to suggest that it is just a bad thing to do. llvm-svn: 180175
-
Anna Zaks authored
- If only partial invalidators exist and there are no full invalidators in @implementation, report every ivar that has not been invalidated. (Previously, we reported the first Ivar in the list, which could actually have been invalidated by a partial invalidator. The code assumed you cannot have only partial invalidators.) - Do not report missing invalidation method declaration if a partial invalidation method declaration exists. llvm-svn: 180170
-
Anna Zaks authored
The uniqueing location is the location which is part of the hash used to determine if two reports are the same. This is used by the CmpRuns.py script to compare two analyzer runs and determine which warnings are new. llvm-svn: 180166
-
Anna Zaks authored
[analyzer] Refactor BugReport::getLocation and PathDiagnosticLocation::createEndOfPath for greater code reuse The 2 functions were computing the same location using different logic (each one had edge case bugs that the other one did not). Refactor them to rely on the same logic. The location of the warning reported in text/command line output format will now match that of the plist file. There is one change in the plist output as well. When reporting an error on a BinaryOperator, we use the location of the operator instead of the beginning of the BinaryOperator expression. This matches our output on command line and looks better in most cases. llvm-svn: 180165
-
- Apr 23, 2013
-
-
Argyrios Kyrtzidis authored
[libclang] Introduce a CXCursor_ObjCSelfExpr cursor, which is the equivalent of CXCursor_CXXThisExpr for C++ code. rdar://13717006 llvm-svn: 180127
-
Richard Trieu authored
C++98 mode. This improves on the previous diagnostic message of: error: expected identifier or '{' llvm-svn: 180076
-
Jordan Rose authored
No functionality change. <rdar://problem/13710586> llvm-svn: 180075
-
Argyrios Kyrtzidis authored
When modifying an implicit instantiation with information from an explicit one, make sure to reset the "right brace" location. Otherwise the source range of the explicit instantiation may become invalid (begin location will be after the end location). rdar://13706991 llvm-svn: 180070
-
Jordan Rose authored
This handles the false positive leak warning in PR15374, and also serves as a basic model for the strsep() function. llvm-svn: 180069
-
Manman Ren authored
llvm-svn: 180065
-
Ted Kremenek authored
llvm-svn: 180056
-
- Apr 22, 2013
-
-
Jordan Rose authored
The analyzer represents all pointer-to-pointer bitcasts the same way, but this can be problematic if an implicit base cast gets layered on top of a manual base cast (performed with reinterpret_cast instead of static_cast). Fix this (and avoid a valid assertion) by looking through cast regions. Using reinterpret_cast this way is only valid if the base class is at the same offset as the derived class; this is checked by -Wreinterpret-base-class. In the interest of performance, the analyzer doesn't repeat this check anywhere; it will just silently do the wrong thing (use the wrong offsets for fields of the base class) if the user code is wrong. PR15394 llvm-svn: 180052
-
Jordan Rose authored
This improves our handling of dynamic_cast and devirtualization for objects allocated by 'new'. llvm-svn: 180051
-
Simon Atanasyan authored
driver tests. These tests check the driver only and do not require mips target. llvm-svn: 180042
-
Manman Ren authored
For ms structs, zero-length bitfields following non-bitfield members are completely ignored, we should not increase the field index. Before the fix, we will have an assertion failure. llvm-svn: 180038
-
Adrian Prantl authored
llvm-svn: 180026
-
Richard Smith authored
statement in constexpr functions. Everything which doesn't require variable mutation is also allowed as an extension in C++11. 'void' becomes a literal type to support constexpr functions which return 'void'. llvm-svn: 180022
-
Richard Smith authored
different array elements, even if they're all constructed using the same default constructor. llvm-svn: 180017
-
Richard Smith authored
llvm-svn: 180004
-
Arnaud A. de Grandmaison authored
llvm-svn: 180002
-
David Blaikie authored
This reverts commit 179839 now that the corresponding LLVM patch has been fixed. llvm-svn: 179997
-
David Blaikie authored
Making the test introduced in r179962 resilient to being run on darwin10 hosts. llvm-svn: 179992
-
- Apr 21, 2013
-
-
Simon Atanasyan authored
Mips backend. llvm-svn: 179981
-
Simon Atanasyan authored
of system include directories with extern "C" semantics. llvm-svn: 179979
-
Richard Smith authored
C++1y, so stop adding the 'const' there. Provide a compatibility warning for code relying on this in C++11, with a fix-it hint. Update our lazily-written tests to add the const, except for those ones which were testing our implementation of this rule. llvm-svn: 179969
-
Richard Smith authored
Still to do here: - we have a collection of syntactic accepts-invalids to diagnose - support non-PODs in VLAs, including dynamic initialization / destruction - runtime checks (and throw std::bad_array_length) for bad bound - support VLA capture by reference in lambdas - properly support VLAs in range-based for (don't recompute bound) llvm-svn: 179962
-
Richard Smith authored
llvm-svn: 179959
-
Richard Smith authored
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default initializer. There's an additional complication here: because the default initializer can refer to the initialized object via its 'this' pointer, we need to make sure that 'this' points to the right thing within the evaluation. llvm-svn: 179958
-
- Apr 20, 2013
-
-
Richard Smith authored
Implement core issue 1608: class members can be found via operator lookup in a trailing return type in that class's body. llvm-svn: 179941
-
Simon Atanasyan authored
Sourcery CodeBench and modern FSF Mips toolchains require a bit more complicated algorithm to calculate headers, libraries and sysroot paths than implemented by Clang driver now. The main problem is that all these paths depend on a set of command line arguments additionally to a target triple value. For example, let $TC is a toolchain installation directory. If we compile big-endian 32-bit mips code, crtbegin.o is in the $TC/lib/gcc/mips-linux-gnu/4.7.2 folder and the toolchain's linker requires --sysroot=$TC/mips-linux-gnu/libc argument. If we compile little-endian 32-bit soft-float mips code, crtbegin.o is in the $TC/lib/gcc/mips-linux-gnu/4.7.2/soft-float/el folder and the toolchain's linker requires --sysroot=$TC/mips-linux-gnu/libc/soft-float/el argument. 1. Calculate MultiarchSuffix using all necessary command line options and use this MultiarchSuffix to detect crtbegin.o location in the GCCInstallationDetector::ScanLibDirForGCCTriple() routine. 2. If a user does not provide --sysroot argument to the driver explicitly, calculate new sysroot value based on command line options. Then use this calculated sysroot path: a. To populate a file search paths list in the Linux::Linux() constructor. b. To find Mips toolchain specific include headers directories in the Linux::AddClangSystemIncludeArgs() routine. c. To provide -–sysroot argument for a linker. Note: - The FSF's tree slightly differs (folder names) and is not supported yet. - New addExternCSystemIncludeIfExits() routine is a temporary solution. I plan to move path existence check to the addExternCSystemInclude() routine by a separate commit. The patch reviewed by Rafael Espindola. http://llvm-reviews.chandlerc.com/D644 llvm-svn: 179934
-
Anna Zaks authored
Introduce a new helper function, which computes the first symbolic region in the base region chain. The corresponding symbol has been used for assuming that a pointer is null. Now, it will also be used for checking if it is null. This ensures that we are tracking a null pointer correctly in the BugReporter. llvm-svn: 179916
-
Anna Zaks authored
llvm-svn: 179914
-
Argyrios Kyrtzidis authored
rdar://13647445 llvm-svn: 179907
-
- Apr 19, 2013
-
-
Adrian Prantl authored
llvm-svn: 179898
-
Adrian Prantl authored
llvm-svn: 179897
-