summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* [libclang] Fix annotation of a range where the begin or end locationArgyrios Kyrtzidis2013-02-132-9/+87
| | | | | | | | | is inside a macro argument. Previously we would give up and not annotate anything in the range. rdar://11891550 llvm-svn: 175062
* ... and now fix the +Asserts buildTimur Iskhodzhanov2013-02-131-2/+2
| | | | llvm-svn: 175054
* Fix the microsoft-abi-structors test expectations to match both Release and ↵Timur Iskhodzhanov2013-02-131-8/+14
| | | | | | Release+Asserts builds llvm-svn: 175053
* Pull search state out as class members.Manuel Klimek2013-02-131-17/+13
| | | | | | Fix some comments. llvm-svn: 175052
* An attempt to make the search algorithm easier to understand.Manuel Klimek2013-02-131-49/+86
| | | | | | | | | | | | | | | | | | | | - clear ownership: the SpecificBumpPtrAllocator owns all StateNodes - this allows us to simplify the memoization data structure into a std::set (FIXME: figure out whether we want to use a hash based data structure). - introduces StateNode as recursive data structure, instead of using Edge and the Seen-map combined to drill through the graph - using a count to stabilize the penalty instead of relying on the container - pulled out a method to forward-apply states in the end This leads to a ~40% runtime decrease on Nico's benchmark. Main FiXME is that the parameter lists of some function get too long. I'd vote for either pulling the Queue etc into the Formatter proper, or creating an inner class just for the search algorithm. llvm-svn: 175051
* Emit virtual/deleting destructors properly with -cxx-abi microsoft, PR15058Timur Iskhodzhanov2013-02-1310-57/+256
| | | | llvm-svn: 175045
* Formatter: And more cast tests (these don't pass yet).Nico Weber2013-02-131-0/+2
| | | | llvm-svn: 175031
* Formatter: Add more cast tests.Nico Weber2013-02-131-1/+9
| | | | llvm-svn: 175030
* Formatter: Refactor the cast detection code to be a bit more readable.Nico Weber2013-02-132-9/+11
| | | | | | No functionality change. Also add another cast test. llvm-svn: 175029
* Formatter: Detect ObjC method expressions after casts.Nico Weber2013-02-132-2/+3
| | | | | | Not all casts are correctly detected yet, but it helps in some cases. llvm-svn: 175028
* Change this comment to helpfully explain why it's there.Nick Lewycky2013-02-131-1/+2
| | | | llvm-svn: 175027
* [analyzer] Use Clang's evaluation for global constants and default arguments.Jordan Rose2013-02-135-22/+91
| | | | | | | | | | | Previously, we were handling only simple integer constants for globals and the smattering of implicitly-valued expressions handled by Environment for default arguments. Now, we can use any integer constant expression that Clang can evaluate, in addition to everything we handled before. PR15094 / <rdar://problem/12830437> llvm-svn: 175026
* [analyzer] Use makeZeroVal in RegionStore's lazy evaluation of statics.Jordan Rose2013-02-131-23/+19
| | | | | | No functionality change. llvm-svn: 175025
* [ms-inline-asm] Test cases to ensure the AsmRewrite list is sorted (r175021).Chad Rosier2013-02-131-0/+12
| | | | | | Part of rdar://13202662 llvm-svn: 175022
* Order the methods in the global method pool based on when they become ↵Douglas Gregor2013-02-124-9/+62
| | | | | | visible, not when they become deserialized <rdar://problem/13203033>. llvm-svn: 175018
* Replace 'signed' with 'int'. 'signed' is not typical for LLVM styleDmitri Gribenko2013-02-121-1/+1
| | | | llvm-svn: 175015
* [preprocessing record] Add some sanity checks for the preprocessed entity indexArgyrios Kyrtzidis2013-02-121-4/+8
| | | | | | | | to make sure we don't crash on release if the index is not valid. rdar://13089714 llvm-svn: 175010
* [ms-inline-asm] Add test cases for the align/emit directives.Chad Rosier2013-02-121-0/+16
| | | | | | Part of rdar://13200215 llvm-svn: 175009
* Add a test for r174980, that we used to acceptDmitri Gribenko2013-02-121-2/+10
| | | | llvm-svn: 175005
* Fix crash for incomplete labels in macros.Daniel Jasper2013-02-122-2/+8
| | | | | | | Still the formatting can be improved, but at least we don't assert any more. This happened when trying to format lib/Sema/SemaType.cpp. llvm-svn: 175003
* [ms-inline asm] Update test case now that we are correctly parsing __emit ↵Chad Rosier2013-02-121-2/+2
| | | | | | directives. llvm-svn: 175000
* Fixing the MSVC compiler warning a different way; removed use of static_cast ↵Aaron Ballman2013-02-121-2/+2
| | | | | | and instead used a signed integer parameter. llvm-svn: 174996
* Typo.Chad Rosier2013-02-121-1/+1
| | | | llvm-svn: 174995
* [ms-inline asm] Add a few test cases for the parsing of hexidecimal integers.Chad Rosier2013-02-121-0/+34
| | | | llvm-svn: 174989
* Removing a signed/unsigned mismatch warning triggered in MSVC 11.Aaron Ballman2013-02-121-1/+1
| | | | llvm-svn: 174986
* Accept over-qualified constructor in MSVC emulation modeDmitri Gribenko2013-02-123-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MSVC accepts this: class A { A::A(); }; Clang accepts regular member functions with extra qualification as an MS extension, but not constructors. This changes the parser to defer rejecting qualified constructors so that the same Sema logic can apply to constructors as regular member functions. This also improves the error message when MS extensions are disabled (in my opinion). Before it was: /Users/jason/Desktop/test.cpp:2:8: error: expected member name or ';' after declaration specifiers A::A(); ~~~~ ^ 1 error generated. After: /Users/jason/Desktop/test.cpp:2:6: error: extra qualification on member 'A' A::A(); ~~~^ 1 error generated. Patch by Jason Haslam. llvm-svn: 174980
* Fix bug in the adjustment to existing lines.Daniel Jasper2013-02-122-6/+12
| | | | | | | | | | | | Before (if only the second line was reformatted): void f() {} void g() {} After: void f() {} void g() {} llvm-svn: 174978
* Formatter: Correctly format stars in `sizeof(int**)` and similar places.Nico Weber2013-02-122-16/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This redoes how '*' and '&' are classified as pointer / reference markers when followed by ')', '>', or ','. Previously, determineStarAmpUsage() marked a single '*' and '&' followed by ')', '>', or ',' as pointer or reference marker. Now, all '*'s and '&'s preceding ')', '>', or ',' are marked as pointer / reference markers. Fixes PR14884. Since only the last '*' in 'int ***' was marked as pointer before (the rest were unary operators, which don't reach spaceRequiredBetween()), spaceRequiredBetween() now had to be thought about handing multiple '*'s in sequence. Before: return sizeof(int * *); Type **A = static_cast<Type * *>(P); Now: return sizeof(int**); Type **A = static_cast<Type **>(P); While here, also make all methods of AnnotatingParser except parseLine() private. Review URL: http://llvm-reviews.chandlerc.com/D384 llvm-svn: 174975
* Adding more overloads for allOf matcherEdwin Vane2013-02-122-6/+43
| | | | | | | | Adding overloads of allOf accepting 4 and 5 arguments. Reviewer: klimek llvm-svn: 174967
* Rename -constructors test to just -structors as in fact it tests dtors too. ↵Timur Iskhodzhanov2013-02-121-1/+1
| | | | | | Also, fix a minor typo in the test. llvm-svn: 174966
* Attempt to fix this test on i686 targets.Nick Lewycky2013-02-121-1/+1
| | | | llvm-svn: 174953
* The meat of this patch is in BuildCXXMemberCalLExpr where we make it useNick Lewycky2013-02-128-14/+68
| | | | | | | | | | | | MarkMemberReferenced instead of marking functions referenced directly. An audit of callers to MarkFunctionReferenced and DiagnoseUseOfDecl also caused a few other changes: * don't mark functions odr-used when considering them for an initialization sequence. Do mark them referenced though. * the function nominated by the cleanup attribute should be diagnosed. * operator new/delete should be diagnosed when building a 'new' expression. llvm-svn: 174951
* Properly assemble PHIs after a null-checked invoke of objc_msgSend.John McCall2013-02-123-58/+135
| | | | | | rdar://12046763 llvm-svn: 174946
* Fix a bug reduced from a crash when trying to use modules with libc++. We checkRichard Smith2013-02-126-4/+32
| | | | | | | | the linkage of functions and variables while merging declarations from modules, and we don't necessarily have enough of the rest of the AST loaded at that point to allow us to compute linkage, so serialize it instead. llvm-svn: 174943
* + specified progress informationAnton Yartsev2013-02-121-1/+1
| | | | llvm-svn: 174942
* + centered progress cellsAnton Yartsev2013-02-122-87/+97
| | | | | | + added progress information for several checkers llvm-svn: 174941
* Call __cxa_begin_catch with the current exception beforeJohn McCall2013-02-125-11/+86
| | | | | | calling std::terminate(). rdar://11904428 llvm-svn: 174940
* Change some CGF parameters to CGMs.John McCall2013-02-121-49/+49
| | | | llvm-svn: 174939
* Remove an assert which triggers when a decl context in a module hits the 'hasRichard Smith2013-02-124-2/+23
| | | | | | | | | lexical storage but not visible storage' case in C++. It's unclear whether we even need the special-case handling for C++, since it seems to be working around our not serializing a lookup table for the TU in C. But in any case, the assertion is incorrect. llvm-svn: 174931
* Perform placeholder conversions on the controller of a _GenericJohn McCall2013-02-122-0/+23
| | | | | | expression. llvm-svn: 174930
* Diagnose loads of 'half' l-values in OpenCL.John McCall2013-02-125-41/+24
| | | | | | Patch by Joey Gouly! llvm-svn: 174928
* Backing out r174919 while I investigate a self-host bug on Takumi's builder.Lang Hames2013-02-126-367/+11
| | | | llvm-svn: 174925
* In ARC, emit non-peepholed +1s within the full-expression insteadJohn McCall2013-02-122-17/+58
| | | | | | of immediately afterwards. llvm-svn: 174922
* Split a couple of tests out into their own file.John McCall2013-02-122-93/+95
| | | | llvm-svn: 174921
* When generating IR for default copy-constructors, copy-assignment operators,Lang Hames2013-02-116-11/+367
| | | | | | | | | | | | | | | | | | | | move-constructors and move-assignment operators, use memcpy to copy adjacent POD members. Previously, classes with one or more Non-POD members would fall back on element-wise copies for all members, including POD members. This often generated a lot of IR. Without padding metadata, it wasn't often possible for the LLVM optimizers to turn the element-wise copies into a memcpy. This code hasn't yet received any serious tuning. I didn't see any serious regressions on a self-hosted clang build, or any of the nightly tests, but I think it's important to get this out in the wild to get more testing. Insights, feedback and comments welcome. Many thanks to David Blaikie, Richard Smith, and especially John McCall for their help and feedback on this work. llvm-svn: 174919
* Timing data was removed years ago. Remove these links.Tanya Lattner2013-02-111-10/+0
| | | | llvm-svn: 174918
* Don't bother reconciling external visible decls against our current set ofRichard Smith2013-02-112-12/+6
| | | | | | declarations if we didn't have a lookup map when the external decls were added. llvm-svn: 174906
* objective-C modern translator: Fixes a mistranslationFariborz Jahanian2013-02-112-1/+29
| | | | | | | of @throw statement by finding location of the ';' correctly. // rdar://13186010 llvm-svn: 174898
* [Modules] Cope better with top-level declarations loaded after being ↵Douglas Gregor2013-02-117-3/+60
| | | | | | | | | | | | | | | | | | | | declared in the current translation unit <rdar://problem/13189985>. These two related tweaks to keep the information associated with a given identifier correct when the identifier has been given some top-level information (say, a top-level declaration) and more information is then loaded from a module. The first ensures that an identifier that was "interesting" before being loaded from an AST is considered to be different from its on-disk counterpart. Otherwise, we lose such changes when writing the current translation unit as a module. Second, teach the code that injects AST-loaded names into the identifier chain for name lookup to keep the most recent declaration, so that we don't end up confusing our declaration chains by having a different declaration in there. llvm-svn: 174895
* Formatter: Detect ObjC message expressions after 'in' in loopNico Weber2013-02-114-6/+26
| | | | | | | | | | | | | | | | Before: for (id foo in[self getStuffFor : bla]) { } Now: for (id foo in [self getStuffFor:bla]) { } "in" is treated as loop keyword if the line starts with "for", and as a regular identifier else. To check for "in", its IdentifierInfo is handed through a few layers. llvm-svn: 174889
OpenPOWER on IntegriCloud