Commit Graph

27768 Commits

Author SHA1 Message Date
Daniel Dunbar 16b0ec59f2 Fix newlines.
llvm-svn: 123742
2011-01-18 05:36:08 +00:00
Daniel Dunbar 84b643ebba tests: Force a triple.
llvm-svn: 123741
2011-01-18 05:36:03 +00:00
Francois Pichet 6422579411 Add support for explicit constructor calls in Microsoft mode.
For example: 

class A{ 
public:
  A& operator=(const A& that) {
      if (this != &that) {
          this->A::~A();
          this->A::A(that);  // <=== explicit constructor call.
      }
      return *this;
  }
};

More work will be needed to support an explicit call to a template constructor.

llvm-svn: 123735
2011-01-18 05:04:39 +00:00
Ted Kremenek c8d55da05a Correctly enable test/Sema/unit-variables.c,
thus identifying a minor logical flaw in
UninitializedValuesV2.cpp.

llvm-svn: 123734
2011-01-18 05:00:42 +00:00
Ted Kremenek cab479f0ee Teach UninitializedValuesV2 about "int x = x" and
also properly handle confluence of loops.

llvm-svn: 123733
2011-01-18 04:53:25 +00:00
Ted Kremenek b4384fb0df Get clang-wpa to build in TOT (reflecting updates
to the static analyzer).

llvm-svn: 123727
2011-01-18 04:22:19 +00:00
Douglas Gregor 0a791672f0 Introduce the notion of a "minimal" import of ASTs, to better support LLDB.
llvm-svn: 123723
2011-01-18 03:11:38 +00:00
Ken Dyck 9a6486934c Replace calls to CharUnits::fromQuantity() with ones to
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.

llvm-svn: 123720
2011-01-18 02:01:14 +00:00
Jeffrey Yasskin 8dfa5f1776 Fix warnings found by gcc-4.6, from -Wunused-but-set-variable and
-Wint-to-pointer-cast.

llvm-svn: 123719
2011-01-18 02:00:16 +00:00
Ken Dyck 86a7fcc19c Replace calls to CharUnits::fromQuantity() with ones
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.

llvm-svn: 123715
2011-01-18 01:56:16 +00:00
NAKAMURA Takumi bd91f50190 lib/CodeGen/TargetInfo.cpp: Add Win64 calling conversion.
FIXME: It would be incompatible to Microsoft's in one point.
On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}.

llvm-svn: 123692
2011-01-17 22:56:31 +00:00
NAKAMURA Takumi a2e468cb0a lib/Basic/Targets.cpp: __builtin_va_list is as same on win64 mingw64!
llvm-svn: 123691
2011-01-17 22:56:23 +00:00
NAKAMURA Takumi ce5519a790 lib/Basic/Targets.cpp: Fix __declspec() on Mingw-w64.
It should be defined as-is. Some headers would detect existence of __declspec and use one.

llvm-svn: 123690
2011-01-17 22:56:16 +00:00
NAKAMURA Takumi f7c3022369 lib/Basic/Targets.cpp: Set user_label_prefix on Win64 both mingw and msvc.
llvm-svn: 123689
2011-01-17 22:56:08 +00:00
Devang Patel 283e89dd22 Simplify.
llvm-svn: 123682
2011-01-17 22:23:07 +00:00
Rafael Espindola 2e217d6555 More unnamed_addr.
llvm-svn: 123681
2011-01-17 22:22:52 +00:00
Rafael Espindola de089d462c merge strings created by
const NSConstantString *appKey =  @"MyApp";

llvm-svn: 123680
2011-01-17 22:11:21 +00:00
Douglas Gregor 45e84b0053 NetBSD, OpenBSD, and Dragonfly BSD also have arc4random. Patch from
Joerg Sonnenberger!

llvm-svn: 123669
2011-01-17 19:16:24 +00:00
Douglas Gregor a09c6cca72 Add missing <cctype> include, from Joerg Sonnenberger
llvm-svn: 123668
2011-01-17 19:15:43 +00:00
Anders Carlsson 48d7285fc6 Handle base and member destructors in CheckFallThrough.
llvm-svn: 123667
2011-01-17 19:06:31 +00:00
Argyrios Kyrtzidis ee56962cc1 Convert "#pragma unused(...)" into tokens for the parser.
This allows us to cache a "#pragma unused" that occurs inside an inline C++ member function.
Fixes rdar://8829590&8770988.

llvm-svn: 123666
2011-01-17 18:58:44 +00:00
Rafael Espindola e79d43da3b Add unnamed_addr to the special strings created by
__builtin___CFStringMakeConstantString
This fixes PR8993. A darwin expert might want to check that this is safe.

llvm-svn: 123658
2011-01-17 16:31:00 +00:00
Anders Carlsson 0acd4cfc33 Remove dead code.
llvm-svn: 123612
2011-01-17 03:13:24 +00:00
Anders Carlsson 5610490cdf Change ParseOptionalCXX0XVirtSpecifierSeq to take a VirtSpecifiers struct.
Enforce C++[class.mem]p8:
A virt-specifier-seq shall contain at most one of each virt-specifier.

llvm-svn: 123611
2011-01-17 03:05:47 +00:00
Francois Pichet 7d92ee3852 Remove a c++ file test I inadvertently added in Sema last week.
llvm-svn: 123608
2011-01-17 01:08:01 +00:00
Francois Pichet 834bfbf147 Revert r123600.
llvm-svn: 123607
2011-01-17 00:56:42 +00:00
Anders Carlsson 11fdbbc1ad Begin work on supporting "N3206: Override control: Eliminating Attributes", from
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm

This lands support for parsing virt-specifier-seq after member functions, including the
contextual keywords 'final', and 'override'. The keywords are not yet used for anything.

llvm-svn: 123606
2011-01-16 23:56:42 +00:00
Anders Carlsson 128ddbf412 Fix a bug where the -Wmissing-noreturn would always treat constructors with base or member initializers as noreturn.
llvm-svn: 123603
2011-01-16 22:12:43 +00:00
Anders Carlsson 36ecb1f208 Add AnalysisContext::dumpCFG.
llvm-svn: 123602
2011-01-16 22:05:23 +00:00
Francois Pichet cb0527c20d Downgrade ext_enumerator_too_large from ExtWarn to Extension in Microsoft mode. Otherwise you can warnings flooding trying to selfhost clang with fms-extensions because of "unsigned int" -> "signed int" enumerator conversion.
llvm-svn: 123600
2011-01-16 21:44:17 +00:00
Douglas Gregor c124e59c90 Emit an extension diagnostic for C99 designated initializers that appear in C++ code
llvm-svn: 123582
2011-01-16 16:13:16 +00:00
Douglas Gregor cef1a03eb5 Tweak the partial ordering rules for function templates to prefer a
non-variadic function template over a variadic one. This matches GCC
and the intent of the C++0x wording, in a way that I think is likely
to be acceptable to the committee.

llvm-svn: 123581
2011-01-16 16:03:23 +00:00
Chris Lattner 906bb9047a improve compatibility with GCC: when generating the ".d" filename to use
and the filename has multiple .'s in it, use the last.  For example, "foo.bar.cpp"
should produce "foo.bar.d" not "foo.d".  Patch by Johan Boule in PR8391

llvm-svn: 123576
2011-01-16 08:14:11 +00:00
Michael J. Spencer a0acb46baa AST/InheritViz: Remove all internal uses of PathV1.
llvm-svn: 123553
2011-01-15 21:43:57 +00:00
Ken Dyck cc56c54889 Add toCharUnitsInBits() to simplify the many calls to CharUnits::fromQuantity() of the form CharUnits::fromQuantity(bitSize, Context.getCharWidth()).
llvm-svn: 123542
2011-01-15 18:38:59 +00:00
Francois Pichet 07a2e14f44 Unbreak the MSVC build again: replace bzero by memset.
llvm-svn: 123538
2011-01-15 13:27:47 +00:00
Rafael Espindola facb7d0ade Also set unnamed_addr on declarations.
llvm-svn: 123531
2011-01-15 08:23:14 +00:00
Chris Lattner 008c0a4a68 clean up some dead code around __has_include() processing code identified by the ted-o-matic.
rdar://8867482

llvm-svn: 123522
2011-01-15 06:57:04 +00:00
Douglas Gregor 5590be0491 Introduce a new kind of TemplateName that captures a substituted
template template parameter pack that cannot be fully expanded because
its enclosing pack expansion could not be expanded. This form of
TemplateName plays the same role as SubstTemplateTypeParmPackType and
SubstNonTypeTemplateParmPackExpr do for template type parameter packs
and non-type template parameter packs, respectively.

We should now handle these multi-level pack expansion substitutions
anywhere. The largest remaining gap in our variadic-templates support
is that we cannot cope with non-type template parameter packs whose
type is a pack expansion.

llvm-svn: 123521
2011-01-15 06:45:20 +00:00
Ted Kremenek b749a6d62a Add initial prototype for implementation of
-Wuninitialized based on CFG dataflow analysis.  WIP.

llvm-svn: 123512
2011-01-15 02:58:47 +00:00
Ted Kremenek 688b674087 Add const version if CFG::isBlkExpr().
llvm-svn: 123511
2011-01-15 02:58:42 +00:00
Argyrios Kyrtzidis a88942ad9c Store/retrieve -fshort-enums for PCH, fixes rdar://8854933.
llvm-svn: 123510
2011-01-15 02:56:16 +00:00
Douglas Gregor 36c0c791a8 Tweak the storage mechanism for a set of overloaded template names in
the TemplateName class. Nothing actually changes, but I find this less
objectionable (and it will factor into an upcoming change).

llvm-svn: 123508
2011-01-15 01:39:24 +00:00
Douglas Gregor cdbc539aee Introduce a new expression kind, SubstNonTypeTemplateParmPackExpr,
that captures the substitution of a non-type template argument pack
for a non-type template parameter pack within a pack expansion that
cannot be fully expanded. This follows the approach taken by
SubstTemplateTypeParmPackType.

llvm-svn: 123506
2011-01-15 01:15:58 +00:00
Douglas Gregor e1d60df0fc Teach template template argument pack expansions to keep track of the
number of expansions, when we know it, and propagate that information
through Sema.

llvm-svn: 123493
2011-01-14 23:41:42 +00:00
Douglas Gregor 715e461463 Handle substitutions into function parameter packs whose patterns
contain multiple parameter packs at different levels.

llvm-svn: 123488
2011-01-14 22:40:04 +00:00
Ted Kremenek 8cb349de80 Cleanup confused code that redundantly called "getDeclContext()" twice.
Found by clang static analyzer.

llvm-svn: 123485
2011-01-14 22:31:41 +00:00
Ted Kremenek bea8b40a86 The variable 'ReusedDecl' is written but never read.
Remove this variable (found by clang static analyzer).

llvm-svn: 123484
2011-01-14 22:31:38 +00:00
Ted Kremenek 7f1f3f6e32 The variable 'isTemplateSpecialization' is no longer
used; nuke all assignments and its declaration.

llvm-svn: 123483
2011-01-14 22:31:36 +00:00
Ted Kremenek c2a6412b97 Remove unused store to variable 'Name'. Found by clang static analyzer.
llvm-svn: 123482
2011-01-14 22:31:34 +00:00