summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-06 04:44:19 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-06 04:44:19 +0000
commit0a0f04dcb956698aa7b017b0c7c97f84e749feb3 (patch)
tree38a9a37fcf743dc7814b11773f95c8d766fcbeb3 /clang/lib/CodeGen/CodeGenModule.cpp
parent991eb3f6c03a8b1a761b4f816e83aa9f0a335b91 (diff)
downloadbcm5719-llvm-0a0f04dcb956698aa7b017b0c7c97f84e749feb3.tar.gz
bcm5719-llvm-0a0f04dcb956698aa7b017b0c7c97f84e749feb3.zip
Make our marking of virtual members functions in a class be
deterministic and work properly with templates. Once a class that needs a vtable has been defined, we now do one if two things: - If the class has no key function, we place the class on a list of classes whose virtual functions will need to be "marked" at the end of the translation unit. The delay until the end of the translation unit is needed because we might see template specializations of these virtual functions. - If the class has a key function, we do nothing; when the key function is defined, the class will be placed on the aforementioned list. At the end of the translation unit, we "mark" all of the virtual functions of the classes on the list as used, possibly causing template instantiation and other classes to be added to the list. This gets LLVM's lib/Support/CommandLine.cpp compiling again. llvm-svn: 92821
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud