Driver: Add ArgList implementation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66037 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-03-04 17:10:42 +00:00
Родитель a4cb9d3a36
Коммит 6ac1e2252b
2 изменённых файлов: 25 добавлений и 2 удалений

Просмотреть файл

@ -10,6 +10,7 @@
#ifndef CLANG_DRIVER_ARGLIST_H_
#define CLANG_DRIVER_ARGLIST_H_
#include "Util.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
@ -34,7 +35,7 @@ namespace driver {
ArgStringList ArgStrings;
/// The full list of arguments.
llvm::SmallVector<Arg*, 16> Args;
arglist_type Args;
/// A map of arguments by option ID; in conjunction with the
/// intrusive list in Arg instances this allows iterating over all
@ -42,7 +43,7 @@ namespace driver {
llvm::DenseMap<unsigned, Arg*> ArgMap;
public:
ArgList(unsigned argc, const char **argv);
ArgList(const char **ArgBegin, const char **ArgEnd);
ArgList(const ArgList &);
~ArgList();

22
lib/Driver/ArgList.cpp Normal file
Просмотреть файл

@ -0,0 +1,22 @@
//===--- ArgList.cpp - Argument List Management -------------------------*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "clang/Driver/ArgList.h"
#include "clang/Driver/Arg.h"
using namespace clang::driver;
ArgList::ArgList(const char **ArgBegin, const char **ArgEnd) {
ArgStrings.append(ArgBegin, ArgEnd);
}
ArgList::~ArgList() {
for (iterator it = begin(), ie = end(); it != ie; ++ie)
delete *it;
}