- Feb 16, 2012
-
-
Dan Gohman authored
llvm-svn: 150713
-
Douglas Gregor authored
name for dot syntax, e.g., NSObject.class or foo.class. For other C++-keywords-as-method-names, use message send syntax. Fixes <rdar://problem/10794452>. llvm-svn: 150710
-
Douglas Gregor authored
completions that don't insert braces. Fixes <rdar://problem/10764168>. llvm-svn: 150707
-
DeLesley Hutchins authored
dependent attributes on static members of templatized classes. llvm-svn: 150704
-
DeLesley Hutchins authored
Thread-safety analysis: Disable checking inside constructors, destructors, lock, and unlock functions llvm-svn: 150701
-
DeLesley Hutchins authored
llvm-svn: 150700
-
DeLesley Hutchins authored
For compatibility with gcc, clang will now parse gcc attributes on function definitions, but issue a warning if the attribute is not a thread safety attribute. Warning controlled by -Wgcc-compat. llvm-svn: 150698
-
Hans Wennborg authored
This is in preparation for being able to warn about 'q' and other non-standard format string features. It also allows us to print its name correctly. llvm-svn: 150697
-
Sebastian Redl authored
This finishes generalized initializer support in Sema. llvm-svn: 150688
-
Sebastian Redl authored
Revert "Revert "Make CXXNewExpr contain only a single initialier, and not hold the used constructor itself."" This reintroduces commit r150682 with a fix for the Bullet benchmark crash. llvm-svn: 150685
-
Sebastian Redl authored
Revert "Make CXXNewExpr contain only a single initialier, and not hold the used constructor itself." It leads to a compiler crash in the Bullet benchmark. This reverts commit r12014. llvm-svn: 150684
-
Sebastian Redl authored
Holding the constructor directly makes no sense when list-initialized arrays come into play. The constructor is now held in a CXXConstructExpr, if construction is what is done. The new design can also distinguish properly between list-initialization and direct-initialization, as well as implicit default-initialization constructors and explicit value-initialization constructors. Finally, doing it this way removes redundance from the AST because CXXNewExpr doesn't try to handle both the allocation and the initialization responsibilities. This breaks the static analysis of new expressions. I've filed PR12014 to track this. llvm-svn: 150682
-
Bill Wendling authored
llvm-svn: 150668
-
NAKAMURA Takumi authored
llvm-svn: 150666
-
Eli Friedman authored
Shift Microsoft enum extensions from -fms-extensions to -fms-compatibility, so -fms-extensions doesn't affect enum semantics in incompatible ways. <rdar://problem/10657186>. llvm-svn: 150663
-
Anna Zaks authored
piece can always be generated. The default end of diagnostic path piece was failing to generate on a BlockEdge that was outgoing from a basic block without a terminator, resulting in a very simple diagnostic being rendered (ex: no path highlighting or custom visitors). Reuse another function, which is essentially doing the same thing and correct it not to fail when a block has no terminator. llvm-svn: 150659
-
Anna Zaks authored
We are not properly handling the memory regions that escape into struct fields, which led to a bunch of false positives. Be conservative here and give up when a pointer escapes into a struct. llvm-svn: 150658
-
Richard Smith authored
* Fix bug when determining whether && / || are potential constant expressions * Try harder when determining whether ?: is a potential constant expression * Produce a diagnostic on sizeof(VLA) to provide a better source location llvm-svn: 150657
-
Argyrios Kyrtzidis authored
llvm-svn: 150651
-
Chad Rosier authored
llvm-svn: 150650
-
Bill Wendling authored
The garbage collection metadata needs to be merged "intelligently", when two or more modules are linked together, and not merely appended. (Appending creates a section which is too large.) The module flags metadata method is the way to do this. <rdar://problem/8198537> llvm-svn: 150648
-
-
Douglas Gregor authored
pointers and block pointers). We use dummy definitions to keep the invariant that an implicit, used definition has a body; IR generation will substitute the actual contents, since they can't be represented as C++. For the block pointer case, compute the copy-initialization needed to capture the lambda object in the block, which IR generation will need later. llvm-svn: 150645
-
Dan Gohman authored
-fno-objc-arc-exceptions. This will allow the optimizer to perform optimizations which are only safe under that flag. This is a part of rdar://10803830. llvm-svn: 150644
-
Richard Smith authored
and move it out of -Wgnu so that -Wno-gnu leaves it enabled. As requested by Eli. llvm-svn: 150643
-
Fariborz Jahanian authored
as unscanned. // rdar://10832643 llvm-svn: 150639
-
Eric Christopher authored
This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4. llvm-svn: 150637
-
Eric Christopher authored
partial types for contexts and forward decls while allowing us to complete types later on for debug purposes. This piggy-backs on the metadata replacement and rauw changes for temporary nodes and takes advantage of the incremental support I added in earlier. This allows us to, if we decide, to limit adding methods and variables to structures in order to limit the amount of debug information output into a .o file. The caching is a bit complicated though so any thoughts on untangling that are welcome. llvm-svn: 150631
-
- Feb 15, 2012
-
-
Richard Smith authored
parenthesized braced-init-list in the base/member initialization list. llvm-svn: 150625
-
Kaelyn Uhrain authored
Snooping in other namespaces when the identifier being corrected is already qualified (i.e. a valid CXXScopeSpec is passed to CorrectTypo) and ranking synthesized namespace qualifiers relative to the existing qualifier is now performed. Support for disambiguating the string representation of synthesized namespace qualifers has also been added (the change to test/Parser/cxx-using-directive.cpp is an example of an ambiguous relative qualifier). llvm-svn: 150622
-
Douglas Gregor authored
with the same parameter types and return type as the function call operator. This is the real answer to http://stackoverflow.com/questions/4148242/is-it-possible-to-convert-a-c0x-lambda-to-a-clang-block :) llvm-svn: 150620
-
David Blaikie authored
This option was added in r129614 and doesn't have any use case that I'm aware of. It's possible that external tools are using these names - and if that's the case we can certainly reassess the functionality, but for now it lets us shave out a few unneeded bits from clang. Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool. This removes the actual diagnostic name strings from clang entirely. Reviewed by Chris Lattner & Ted Kremenek. llvm-svn: 150612
-
Douglas Gregor authored
function, provide a specialized diagnostic that indicates the kind of special member function (default constructor, copy assignment operator, etc.) and that it was implicitly deleted. Add a hook where we can provide more detailed information later. llvm-svn: 150611
-
Douglas Gregor authored
llvm-svn: 150589
-
Douglas Gregor authored
specialize location information and diagnostics for this entity. llvm-svn: 150588
-
Douglas Gregor authored
llvm-svn: 150586
-
Douglas Gregor authored
return statements within a lambda; this diagnostic previously referred to blocks. llvm-svn: 150584
-
Douglas Gregor authored
llvm-svn: 150583
-
Dmitri Gribenko authored
in test/SemaCXX/nullptr.cpp to static_assert llvm-svn: 150579
-
Hans Wennborg authored
This commit makes PrintfSpecifier::fixType() and ScanfSpecifier::fixType() only fix a conversion specification enough that Clang wouldn't warn about it, as opposed to always changing it to use the "canonical" conversion specifier. (PR11975) This preserves the user's choice of conversion specifier in cases like: printf("%a", (long double)1); where we previously suggested "%Lf", we now suggest "%La" printf("%x", (long)1); where we previously suggested "%ld", we now suggest "%lx". llvm-svn: 150578
-