aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2013-03-21Add more testing cases for tbaa.structManman Ren
Testing cases for structs of structs and unions of structs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177612 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Debug info - generalize namespace test to not depend on a DW_TAG_file_type entryDavid Blaikie
This isn't necessary & with the next change to LLVM the DW_TAG_file_type entry won't be emitted at all - only the raw filename/directory pair, so match on that directly instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177609 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Split ubsan runtime into three pieces (clang part):Richard Smith
* libclang_rt-san-* is sanitizer_common, and is linked in only if no other sanitizer runtime is present. * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on a C++ ABI library, and is always linked in. * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a C++ ABI library, and is only linked in when linking a C++ binary. This change also switches us to using -whole-archive for the ubsan runtime (which is made possible by the above split), and switches us to only linking the sanitizer runtime into the main binary and not into DSOs (which is made possible by using -whole-archive). The motivation for this is to only link a single copy of sanitizer_common into any binary. This is becoming important now because we want to share more state between multiple sanitizers in the same process (for instance, we want a single shared output mutex). The Darwin ubsan runtime is unchanged; because we use a DSO there, we don't need this complexity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[ms-cxxabi] Mangle function pointer template arguments correctlyReid Kleckner
Reviewers: rjmccall CC: timurrrr, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D554 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177589 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, ↵Douglas Gregor
and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Don't invalidate globals when there's no call involved.Jordan Rose
This fixes some mistaken condition logic in RegionStore that caused global variables to be invalidated when /any/ region was invalidated, rather than only as part of opaque function calls. This was only being used by CStringChecker, and so users will now see that strcpy() and friends do not invalidate global variables. Also, add a test case we don't handle properly: explicitly-assigned global variables aren't being invalidated by opaque calls. This is being tracked by <rdar://problem/13464044>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177572 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Track malloc'd memory into struct fields.Jordan Rose
Due to improper modelling of copy constructors (specifically, their const reference arguments), we were producing spurious leak warnings for allocated memory stored in structs. In order to silence this, we decided to consider storing into a struct to be the same as escaping. However, the previous commit has fixed this issue and we can now properly distinguish leaked memory that happens to be in a struct from a buffer that escapes within a struct wrapper. Originally applied in r161511, reverted in r174468. <rdar://problem/12945937> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177571 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20[analyzer] Invalidate regions indirectly accessible through const pointers.Jordan Rose
In this case, the value of 'x' may be changed after the call to indirectAccess: struct Wrapper { int *ptr; }; void indirectAccess(const Wrapper &w); void test() { int x = 42; Wrapper w = { x }; clang_analyzer_eval(x == 42); // TRUE indirectAccess(w); clang_analyzer_eval(x == 42); // UNKNOWN } This is important for modelling return-by-value objects in C++, to show that the contents of the struct are escaping in the return copy-constructor. <rdar://problem/13239826> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177570 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20refactoring file/directory for namespace debug infoDavid Blaikie
(this is a paired commit with an LLVM change to DIBuilder - expect some buildbot skew/fallout) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177565 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Enhance debug info namespace test to check for context/scope referenceDavid Blaikie
The #line directive is mostly for backend testing (keeping these files matching should simplify maintenance somewhat) though the corresponding backend test improvement/update doesn't verify the file information directly just yet. Coming in a later iteration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177559 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Do the error recovery for @end only.Fariborz Jahanian
I am not sure how much we can improve for when a randon ObjC keyword is thrown into the ivar decl. block. // rdar://6854840 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177553 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Objective-C [qoi] more gracefull recovery when Fariborz Jahanian
'}' is missing for the ivar declarations. // rdar://6854840 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177549 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20PR7256: Provide a fixit for incorrect destructor declarationsDavid Blaikie
Fix by Ismail Pazarbasi (ismail.pazarbasi@gmail.com), review by Dmitri Gribenko. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177546 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Exploit this-return of a callsite in a this-return function.Manman Ren
For constructors/desctructors that return 'this', if there exists a callsite that returns 'this' and is immediately before the return instruction, make sure we are using the return value from the callsite. We don't need to keep 'this' alive through the callsite. It also enables optimizations in the backend, such as tail call optimization. Updated from r177211. rdar://12818789 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177541 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Fix redundant comparison in gcc::Common::ConstructJob.Hans Wennborg
We were checking "Arch == llvm::Triple::x86_64 || Arch == llvm::Triple::x86_64", but the rhs should actually check for powerpc64. Found while experimenting with a potential new Clang warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177496 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make front-end debug info namespace test frontend-only & more specific ↵David Blaikie
without overconstraining it The backend portion of this test will be committed to LLVM's test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177485 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Teach statement / declaration disambiguation about C++11-style generalized ↵Richard Smith
initializers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177480 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20The flag "-coverage-function-names-in-data" is actually backwards -- we doNick Lewycky
emit function names in .gcda files by default, and the flag turns that off! Rename the flag to make it match what it actually does. This keeps the default format compatible with gcc 4.2. Also add a test for this flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177475 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Don't look outside the innermost enclosing namespace whenJohn McCall
performing unqualified lookup for a friend class declaration. rdar://13393749 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177473 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make clang emit linkage names in debug info for subprograms when coverage infoNick Lewycky
is enabled. Also add a new -test-coverage cc1 flag which makes testing coverage possible and add our first clang-side coverage test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177470 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20<rdar://problem/10796651> Introduce configuration macros into module maps.Douglas Gregor
Configuration macros are macros that are intended to alter how a module works, such that we need to build different module variants for different values of these macros. A module can declare its configuration macros, in which case we will complain if the definition of a configation macro on the command line (or lack thereof) differs from the current preprocessor state at the point where the module is imported. This should eliminate some surprises when enabling modules, because "#define CONFIG_MACRO ..." followed by "#include <module/header.h>" would silently ignore the CONFIG_MACRO setting. At least it will no longer be silent about it. Configuration macros are eventually intended to help reduce the number of module variants that need to be built. When the list of configuration macros for a module is exhaustive, we only need to consider the settings for those macros when building/finding the module, which can help isolate modules for various project-specific -D flags that should never affect how modules are build (but currently do). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177466 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Simplify/generalize some debug info test casesDavid Blaikie
Mostly, try to depend on the annotation comments more so these tests are more legible, brief, and agnostic to schema changes in the future (sure, they're not agnostic to changes to the comment annotations but since they're easier to read they should be easier to update if that happens). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177457 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19[analyzer] Add an integer version of the Circle tests in uninit-vals.m.Jordan Rose
A floating-point version is nice for testing unknown values, but it's good to be able to check all parts of the structure as well. Test change only, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177455 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19[analyzer] Do not believe lazy binding when symbolic region types do not matchAnna Zaks
This fixes a crash when analyzing LLVM that was exposed by r177220 (modeling of trivial copy/move assignment operators). When we look up a lazy binding for “Builder”, we see the direct binding of Loc at offset 0. Previously, we believed the binding, which led to a crash. Now, we do not believe it as the types do not match. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177453 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19[analyzer] Add a test case for diagnostic suppression on a graph with cycles.Jordan Rose
(see previous commit) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177449 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Test case for r177439 and r177440.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177441 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Objective-C [qoi]: Provide improved parse diagnostics whenFariborz Jahanian
closing rbrace is missing in an ObjC class declaration. Can do beter than this, but it involves addition of overhead which will be present in correct code. // rdar://6854840 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177435 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Relax test to allow for attributes on other architectures. Caught by ↵Adrian Prantl
powerpc64-unknown-linux-gnu buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177419 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Update test for r177413.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Don't try to set attributes in alias, they have none.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177402 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Go back to using the integrated assembler on windows ever when passedRafael Espindola
-no-integrated-as. It is the only assembler we have there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177398 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19[ASan] Make -fsanitize=address always imply -fsanitize=init-orderAlexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177391 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19Add a clarifying note when a return statement is rejected becauseJohn McCall
we expect a related result type. rdar://12493140 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177378 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19<rdar://problem/13363214> Eliminate race condition between module rebuild ↵Douglas Gregor
and the global module index. The global module index was querying the file manager for each of the module files it knows about at load time, to prune out any out-of-date information. The file manager would then cache the results of the stat() falls used to find that module file. Later, the same translation unit could end up trying to import one of the module files that had previously been ignored by the module cache, but after some other Clang instance rebuilt the module file to bring it up-to-date. The stale stat() results in the file manager would trigger a second rebuild of the already-up-to-date module, causing failures down the line. The global module index now lazily resolves its module file references to actual AST reader module files only after the module file has been loaded, eliminating the stat-caching race. Moreover, the AST reader can communicate to its caller that a module file is missing (rather than simply being out-of-date), allowing us to simplify the module-loading logic and allowing the compiler to recover if a dependent module file ends up getting deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177367 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19PR15383: When -fsanitize=float-cast-overflow checks a float-to-int conversion,Richard Smith
it wasn't taking into account that the float should be truncated *before* the range check happens. Thus (unsigned)-0.99 and (unsigned char)255.9 have defined behavior and should not be trapped. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177362 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18[libclang] Modify clang_getCursorType to be able to handle a function ↵Argyrios Kyrtzidis
template decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177359 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18documentation comment parsing. Added couple of Fariborz Jahanian
top-level HeaderDoc tags @functiongroup and @methodgroup to doc. tags recognized. // rdar://12379114 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177358 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Diagnose uses of 'alignof' on functions in -pedantic mode.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177354 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Test case for r177347.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177349 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18PR15539: Record "evaluating if/elif condition" flag in the right placeDavid Blaikie
The previous implementation missed the case where the elif condition was evaluated from the context of an #ifdef that was false causing PR15539. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177345 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Update testcase for r177340.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177344 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18[frontend] Initialize the diagnostic client before loading an ast file.Argyrios Kyrtzidis
Issue reported by Tom Honermann! http://llvm.org/bugs/show_bug.cgi?id=15377 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177336 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Add missing diagnostic for a nested-name-specifier on a free-standing type ↵Richard Smith
definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177335 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18[PCH] Fix assertion hit related to enum decls inside templated funtions.Argyrios Kyrtzidis
Report and suggested fix by Tom Honermann! http://llvm.org/bugs/show_bug.cgi?id=13020 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177330 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Bring inheriting constructor implementation up-to-date with current defectRichard Smith
reports, and implement implicit definition of inheriting constructors. Remaining missing features: inheriting constructor templates, implicit exception specifications for inheriting constructors, inheriting constructors from dependent bases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177320 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18[analyzer] Warn when a ‘nil’ object is added to NSArray or NSMutableArray.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177318 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Objective-C modern translator. Don't put line infoFariborz Jahanian
into the pre-preprocessed file to be passed to modern translator when compiling in no debug mode. // rdar://13138170 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177311 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18Make sure to use same EABI version for external assembler as for integrated as.Anton Korobeynikov
Patch by Andrew Turner! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177252 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-17Generalize a few debug info test casesDavid Blaikie
Checking for the annotation comment rather than the metadata values makes these tests resilient to a coming refactor that will pull these fields out into a separate metadata node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177237 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-16revert r177211 due to its potential issuesManman Ren
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177222 91177308-0d34-0410-b5e6-96231b3b80d8