llvm-project/clang/lib
Chris Lattner ff0e2a36e2 Rework the ConstStructBuilder code to emit missing initializer
elements with explicit zero values instead of with tail padding.
On an example like this:

struct foo { int a; int b; };

struct foo fooarray[] = {
    {1, 2},
    {4},
};

We now lay this out as:

@fooarray = global [2 x %struct.foo] [%struct.foo { i32 1, i32 2 }, %struct.foo { i32 4, i32 0 }]

instead of as:

@fooarray = global %0 <{ %struct.foo { i32 1, i32 2 }, %1 { i32 4, [4 x i8] zeroinitializer } }>

Preserving both the struct type of the second element, but also the array type of the entire thing.

llvm-svn: 101155
2010-04-13 18:16:19 +00:00
..
AST Teach HasSideEffect about InitListExprs. Not having 2010-04-13 17:34:23 +00:00
Analysis CFGBuilder: always add C++ member call expr as block-level expr. 2010-04-13 09:38:01 +00:00
Basic fix PR6814 - Only print [-pedantic] on a diagnostic if -pedantic 2010-04-12 21:53:11 +00:00
Checker Make all cases that we don't handle explicit. 2010-04-13 13:15:19 +00:00
CodeGen Rework the ConstStructBuilder code to emit missing initializer 2010-04-13 18:16:19 +00:00
Driver add haiku support, patch by Paul Davey! 2010-04-11 19:29:39 +00:00
Frontend make the rewriter add a #ifndef around the #define of __attribute__. 2010-04-13 17:33:56 +00:00
Headers rename llvm::llvm_report_error -> llvm::report_fatal_error 2010-04-07 22:58:06 +00:00
Index Allow users to set CPPFLAGS and CXXFLAGS on the make command line. 2010-03-12 22:55:16 +00:00
Lex fix a minor bug I noticed while work with Jordy's patch for PR6101, 2010-04-12 23:04:41 +00:00
Parse Parse constructor names in friend declarations. Part of the fix for 2010-04-13 06:39:49 +00:00
Rewrite Let SourceManager::getBufferData return StringRef instead of a pair of two const char*. 2010-03-16 14:14:31 +00:00
Runtime Runtime: Install the new libcc_kext.a produced by the clang_darwin compiler-rt 2010-03-26 19:37:38 +00:00
Sema Refactor and simplify the computation of implicit conversion sequences 2010-04-13 16:31:36 +00:00
CMakeLists.txt Split libAnalysis into two libraries: libAnalysis and libChecker. 2010-01-25 04:41:41 +00:00
Makefile Split libAnalysis into two libraries: libAnalysis and libChecker. 2010-01-25 04:41:41 +00:00