scons: Add warning for missing declarations
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 19 Feb 2013 10:56:07 +0000 (05:56 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 19 Feb 2013 10:56:07 +0000 (05:56 -0500)
This patch enables warnings for missing declarations. To avoid issues
with SWIG-generated code, the warning is only applied to non-SWIG
code.

43 files changed:
src/SConscript
src/arch/arm/isa/formats/misc.isa
src/arch/arm/isa/insts/m5ops.isa
src/arch/mips/isa/formats/control.isa
src/arch/mips/isa/formats/dsp.isa
src/arch/mips/isa/formats/fp.isa
src/arch/mips/isa/formats/mem.isa
src/arch/mips/isa/formats/mt.isa
src/arch/mips/isa/includes.isa
src/arch/sparc/faults.hh
src/arch/x86/bios/intelmp.hh
src/arch/x86/cpuid.hh
src/arch/x86/interrupts.hh
src/base/debug.cc
src/base/debug.hh
src/base/hostinfo.cc
src/base/hostinfo.hh
src/base/inet.hh
src/base/statistics.cc
src/base/statistics.hh
src/base/stats/text.hh
src/base/userinfo.cc
src/cpu/legiontrace.hh
src/cpu/pc_event.hh
src/dev/disk_image.hh
src/kern/tru64/dump_mbuf.cc
src/kern/tru64/printf.cc
src/mem/ruby/buffers/MessageBuffer.hh
src/mem/ruby/network/simple/PerfectSwitch.hh
src/mem/ruby/profiler/AddressProfiler.hh
src/mem/ruby/system/CacheMemory.hh
src/mem/ruby/system/RubyMemoryControl.hh
src/mem/ruby/system/WireBuffer.hh
src/python/swig/pyobject.cc
src/python/swig/pyobject.hh
src/sim/debug.hh
src/sim/drain.hh
src/sim/eventq.hh
src/sim/init.hh
src/sim/serialize.hh
src/sim/sim_object.hh
src/sim/stat_control.hh
src/sim/system.hh

index 688eb123facc53182bd0aecd9fb7512ff83140aa..2abe8b2ad9f85a32288af3323b626a28c3790bfc 100755 (executable)
@@ -899,9 +899,17 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
                                  '-Wno-unused-value'])
         if compareVersions(env['GCC_VERSION'], '4.6') >= 0:
             swig_env.Append(CCFLAGS='-Wno-unused-but-set-variable')
+
+        # Add additional warnings here that should not be applied to
+        # the SWIG generated code
+        new_env.Append(CXXFLAGS='-Wmissing-declarations')
     if env['CLANG']:
         swig_env.Append(CCFLAGS=['-Wno-unused-label', '-Wno-unused-value'])
 
+        # Add additional warnings here that should not be applied to
+        # the SWIG generated code
+        new_env.Append(CXXFLAGS='-Wmissing-declarations')
+
     werror_env = new_env.Clone()
     werror_env.Append(CCFLAGS='-Werror')
 
index 3865cffe2f8949d7b2aeb4c6b9ecfeed1c5f48b1..00a37d17b2588f43dc74d662d5b4fdd1da8511e7 100644 (file)
@@ -81,7 +81,7 @@ def format ArmMsrMrs() {{
 let {{
     header_output = '''
     StaticInstPtr
-    decodeMcrMrc15(ExtMachInst machInst);
+    decodeMcrMrc14(ExtMachInst machInst);
     '''
     decoder_output = '''
     StaticInstPtr
index a32bf6dfc3d923599581badeb3aa25032644e06a..272f16b1705a6270bd654c13384617c6b3e66c09 100644 (file)
@@ -38,7 +38,9 @@
 
 
 let {{
-    header_output = ""
+    header_output = '''
+    uint64_t join32to64(uint32_t r1, uint32_t r0);
+    '''
     decoder_output = '''
     uint64_t join32to64(uint32_t r1, uint32_t r0)
     {
index d8e5eb1111c4b1ea55448916cceb3f62fc29b138..1480a5589ff60f78c300911579f8cb9cef319955 100644 (file)
@@ -172,6 +172,13 @@ output decoder {{
 
 }};
 
+output header {{
+        bool isCoprocessorEnabled(%(CPU_exec_context)s *xc, unsigned cop_num);
+
+        bool isMMUTLB(%(CPU_exec_context)s *xc);
+
+}};
+
 output exec {{
         bool
         isCoprocessorEnabled(%(CPU_exec_context)s *xc, unsigned cop_num)
index b288b7b203ff5f52dabf02cd3e45bf2cf6c0cdc9..9dfae3f44592fc022b3d048b23b4eeafc24d8aeb 100755 (executable)
@@ -135,6 +135,12 @@ def template DspHiLoExecute {{
         }
 }};
 
+output header {{
+    bool isDspEnabled(%(CPU_exec_context)s *xc);
+
+    bool isDspPresent(%(CPU_exec_context)s *xc);
+}};
+
 //Outputs to decoder.cc
 output decoder {{
 }};
index 63823f40459f347eed849122c3317042a64a58cf..e6f0258a0854f594f153dd9ef52d39531a96fb01 100644 (file)
@@ -86,6 +86,11 @@ output decoder {{
         }
 }};
 
+output header {{
+        void fpResetCauseBits(%(CPU_exec_context)s *cpu);
+
+}};
+
 output exec {{
         inline Fault checkFpEnableFault(%(CPU_exec_context)s *xc)
         {
index 0ef2ac6aed6f1f0011f24afba0a340c9e47c0e12..64d0000059be4cd2aaf7b495f53e5beeb37db0cc 100644 (file)
@@ -96,6 +96,11 @@ output decoder {{
 
 }};
 
+output header {{
+    uint64_t getMemData(%(CPU_exec_context)s *xc, Packet *packet);
+
+}};
+
 output exec {{
     /** return data in cases where there the size of data is only
         known in the packet
index 41f94e12979982b17e8e95c889e70a06f277780f..b4d00454e29eba33612d5686ce08cc49ac1e50ad 100644 (file)
@@ -84,6 +84,17 @@ output decoder {{
     }
 }};
 
+output header {{
+   void getThrRegExValues(%(CPU_exec_context)s *xc,
+                          MipsISA::VPEConf0Reg &vpe_conf0,
+                          MipsISA::TCBindReg &tc_bind_mt,
+                          MipsISA::TCBindReg &tc_bind,
+                          MipsISA::VPEControlReg &vpe_control,
+                          MipsISA::MVPConf0Reg &mvp_conf0);
+
+   void getMTExValues(%(CPU_exec_context)s *xc, MipsISA::Config3Reg &config3);
+}};
+
 output exec {{
     void getThrRegExValues(%(CPU_exec_context)s *xc,
             VPEConf0Reg &vpe_conf0, TCBindReg &tc_bind_mt,
index f8c86a71aad9360ce49a9365bcc9170faa38eb32..9ce1b881013180fb5af0fc7fe2801c1cb486bf95 100644 (file)
@@ -39,7 +39,8 @@ output header {{
 #include <sstream>
 
 #include "arch/mips/isa_traits.hh"
-#include "arch/mips/types.hh"
+#include "arch/mips/mt_constants.hh"
+#include "arch/mips/pra_constants.hh"
 #include "cpu/static_inst.hh"
 #include "mem/packet.hh"
 }};
index 148983f4f65779e829f85a01ad2e9b41000e3f59..1fee832d3f43fa9acd269e1c100e233a74dd8b81 100644 (file)
@@ -276,6 +276,19 @@ class TrapInstruction : public EnumeratedFault<TrapInstruction>
             StaticInstPtr inst = StaticInst::nullStaticInstPtr);
 };
 
+void enterREDState(ThreadContext *tc);
+
+void doREDFault(ThreadContext *tc, TrapType tt);
+
+void doNormalFault(ThreadContext *tc, TrapType tt, bool gotoHpriv);
+
+void getREDVector(MiscReg TT, Addr &PC, Addr &NPC);
+
+void getHyperVector(ThreadContext * tc, Addr &PC, Addr &NPC, MiscReg TT);
+
+void getPrivVector(ThreadContext *tc, Addr &PC, Addr &NPC, MiscReg TT,
+                   MiscReg TL);
+
 } // namespace SparcISA
 
 #endif // __SPARC_FAULTS_HH__
index 909f8ad798c2529210678a846d8f9bc36745cb54..b51d1bd2141a1091416d38ed225ff4d0578a547d 100644 (file)
@@ -73,6 +73,12 @@ struct X86IntelMPAddrSpaceMappingParams;
 struct X86IntelMPBusHierarchyParams;
 struct X86IntelMPCompatAddrSpaceModParams;
 
+template<class T>
+uint8_t writeOutField(PortProxy& proxy, Addr addr, T val);
+
+uint8_t writeOutString(PortProxy& proxy, Addr addr, std::string str,
+                       int length);
+
 namespace X86ISA
 {
 
index 8d318181922bb319d79d154a2207b16ee228d1ef..2414cbeb604771697f844c3cc0fab0b7cd11b9cb 100644 (file)
@@ -55,6 +55,8 @@ namespace X86ISA
         {}
     };
 
+    uint64_t stringToRegister(const char *str);
+
     bool doCpuid(ThreadContext * tc, uint32_t function,
             uint32_t index, CpuidResult &result);
 } // namespace X86ISA
index 4e6ef4324af1746fc7a8ed995523a88c43395a53..de3eea1a67fad69aac7b784366be1a2981d9813c 100644 (file)
 class ThreadContext;
 class BaseCPU;
 
+int divideFromConf(uint32_t conf);
+
 namespace X86ISA {
 
+ApicRegIndex decodeAddr(Addr paddr);
+
 class Interrupts : public BasicPioDevice, IntDev
 {
   protected:
index ba154f37747621061c8a0b83b0e80a6c433abd68..2780344a442afe349daa10c4a813243594453cea 100644 (file)
@@ -33,8 +33,6 @@
 
 #include <algorithm>
 #include <csignal>
-#include <map>
-#include <vector>
 
 #include "base/cprintf.hh"
 #include "base/debug.hh"
@@ -62,7 +60,6 @@ breakpoint()
 //
 // Flags for debugging purposes.  Primarily for trace.hh
 //
-typedef std::map<string, Flag *> FlagsMap;
 int allFlagsVersion = 0;
 FlagsMap &
 allFlags()
index d43117e71e7dffca39cc417a954faad025e9db17..589e8fa427551464c140e501fc0bcac556c47c5f 100644 (file)
@@ -32,6 +32,7 @@
 #ifndef __BASE_DEBUG_HH__
 #define __BASE_DEBUG_HH__
 
+#include <map>
 #include <string>
 #include <vector>
 
@@ -110,6 +111,19 @@ class CompoundFlag : public SimpleFlag
     void disable();
 };
 
+typedef std::map<std::string, Flag *> FlagsMap;
+FlagsMap &allFlags();
+
+Flag *findFlag(const std::string &name);
+
+bool changeFlag(const char *s, bool value);
+
 } // namespace Debug
 
+void setDebugFlag(const char *string);
+
+void clearDebugFlag(const char *string);
+
+void dumpDebugFlags();
+
 #endif // __BASE_DEBUG_HH__
index 15413de2a8069fcc00b422b0724c984f91a47a5f..e5a612c46258226a5e4143c2a373b37e0b31103f 100644 (file)
@@ -44,6 +44,7 @@
 #include <cstring>
 #include <string>
 
+#include "base/hostinfo.hh"
 #include "base/misc.hh"
 #include "base/str.hh"
 #include "base/types.hh"
index d9a30481a478e6943956869278a365484a1575e1..137af25af3850cd1842b6fc52ec03cb73996626e 100644 (file)
@@ -35,6 +35,8 @@
 
 #include "base/types.hh"
 
+std::string __get_hostname();
+
 std::string &hostname();
 
 uint64_t procInfo(const char *filename, const char *target);
index 1df175c1ea1df56cb845f7be2272be65d00befb6..4abac740082e879e91b06ad427fb0825ec37a008 100644 (file)
@@ -463,6 +463,7 @@ class UdpPtr
     int pstart() const { return off() + get()->size(); }
 };
 
+uint16_t __tu_cksum(const IpPtr &ip);
 uint16_t cksum(const UdpPtr &ptr);
 
 int hsplit(const EthPacketPtr &ptr);
index 8034625beee105a67d7729bd3579127804c10779..630205a5913fb17e6ca3ae2e0a10a0941e7ce518 100644 (file)
@@ -49,7 +49,6 @@ using namespace std;
 namespace Stats {
 
 std::string Info::separatorString = "::";
-typedef map<const void *, Info *> MapType;
 
 // We wrap these in a function to make sure they're built in time.
 list<Info *> &
@@ -114,7 +113,6 @@ StorageParams::~StorageParams()
 {
 }
 
-typedef map<std::string, Info *> NameMapType;
 NameMapType &
 nameMap()
 {
index c46eedfde6b01e65e7b7d52107c5bc41d464489f..13347b7339c1118db8ad8cadbcce612f3754c20d 100644 (file)
@@ -3164,6 +3164,16 @@ void registerDumpCallback(Callback *cb);
 
 std::list<Info *> &statsList();
 
+typedef std::map<const void *, Info *> MapType;
+MapType &statsMap();
+
+typedef std::map<std::string, Info *> NameMapType;
+NameMapType &nameMap();
+
+bool validateStatName(const std::string &name);
+
 } // namespace Stats
 
+void debugDumpStats();
+
 #endif // __BASE_STATISTICS_HH__
index 7f7edaa91393712f95a24161181b65c6fdb17cd7..8bb290a9916eab48546605479a62f6d99b4dafcc 100644 (file)
@@ -35,6 +35,7 @@
 #include <string>
 
 #include "base/stats/output.hh"
+#include "base/stats/types.hh"
 #include "base/output.hh"
 
 namespace Stats {
@@ -75,6 +76,8 @@ class Text : public Output
     virtual void end();
 };
 
+std::string ValueToString(Result value, int precision);
+
 Output *initText(const std::string &filename, bool desc);
 
 } // namespace Stats
index 62f7b7b5cb4b1b32db45bf203d1438b3d8f1b525..81782012cd76c793f912157c051e46acf4772dcd 100644 (file)
@@ -34,6 +34,8 @@
 
 #include <string>
 
+#include "base/userinfo.hh"
+
 std::string
 username()
 {
index 24957e40a1c056e939b24c696c6a5f66dfe3bd49..84f83d87e33d9b71d66a98cf1ce6b168f88a6cf9 100644 (file)
@@ -42,6 +42,8 @@ class ThreadContext;
 
 namespace Trace {
 
+void setupSharedData();
+
 class LegionTraceRecord : public InstRecord
 {
   public:
index f26bbf3f23bf1a52fa3e54717436f62333331b61..c73fc3c5af667cc8080c7d5d605c3eea012ddc7a 100644 (file)
@@ -39,6 +39,7 @@
 
 class ThreadContext;
 class PCEventQueue;
+class System;
 
 class PCEvent
 {
@@ -141,4 +142,8 @@ class BreakPCEvent : public PCEvent
     virtual void process(ThreadContext *tc);
 };
 
+void sched_break_pc_sys(System *sys, Addr addr);
+
+void sched_break_pc(Addr addr);
+
 #endif // __PC_EVENT_HH__
index 90587924825df0f85e2d8505f21e8be9175b97b2..da96082cb0919a5db390c9152e200433faff70e4 100644 (file)
@@ -137,4 +137,20 @@ class CowDiskImage : public DiskImage
     virtual std::streampos write(const uint8_t *data, std::streampos offset);
 };
 
+void SafeRead(std::ifstream &stream, void *data, int count);
+
+template<class T>
+void SafeRead(std::ifstream &stream, T &data);
+
+template<class T>
+void SafeReadSwap(std::ifstream &stream, T &data);
+
+void SafeWrite(std::ofstream &stream, const void *data, int count);
+
+template<class T>
+void SafeWrite(std::ofstream &stream, const T &data);
+
+template<class T>
+void SafeWriteSwap(std::ofstream &stream, const T &data);
+
 #endif // __DISK_IMAGE_HH__
index fda1753d34bc0393553871b8007fd94fbaa5d987..1eef26c0773581f2e12d057f1e871a3014315d4a 100644 (file)
@@ -40,6 +40,7 @@
 #include "base/types.hh"
 #include "config/the_isa.hh"
 #include "cpu/thread_context.hh"
+#include "kern/tru64/dump_mbuf.hh"
 #include "kern/tru64/mbuf.hh"
 #include "sim/arguments.hh"
 #include "sim/system.hh"
index dfd300c12e7f23b4411dc954cd4e89f2285eb8b6..914a6ae86fdd6de31bed1707320d7bf8a06cf4d9 100644 (file)
@@ -36,6 +36,7 @@
 #include "base/cprintf.hh"
 #include "base/trace.hh"
 #include "base/types.hh"
+#include "kern/tru64/printf.hh"
 #include "sim/arguments.hh"
 
 using namespace std;
index 74023a8accb1586d6fffe19fc2a73fed3193dc94..2a52d2a2e3d6a078077fc75528aa5d1f510bfd41 100644 (file)
@@ -216,6 +216,8 @@ class MessageBuffer
     int m_vnet_id;
 };
 
+Cycles random_time();
+
 inline std::ostream&
 operator<<(std::ostream& out, const MessageBuffer& obj)
 {
index 695c848bcf4e157e5ba93ed527152ee88e47cc9d..2f914f39bf93a06ccb0a246a6a5612346c69b5e3 100644 (file)
@@ -53,6 +53,8 @@ struct LinkOrder
     int m_value;
 };
 
+bool operator<(const LinkOrder& l1, const LinkOrder& l2);
+
 class PerfectSwitch : public Consumer
 {
   public:
index 5bce34bbb63681a68126206a0da5bfedc0f31320..642b5a41a37ff5b5a06d172ffc343b04a00c74ac 100644 (file)
@@ -92,6 +92,14 @@ class AddressProfiler
     int m_num_of_sequencers;
 };
 
+AccessTraceForAddress& lookupTraceForAddress(const Address& addr,
+                                             AddressProfiler::AddressMap&
+                                             record_map);
+
+void printSorted(std::ostream& out, int num_of_sequencers,
+                 const AddressProfiler::AddressMap &record_map,
+                 std::string description);
+
 inline std::ostream&
 operator<<(std::ostream& out, const AddressProfiler& obj)
 {
index 6b436082f673281607513fca6c38538754618e57..8aca250b3291b9ff95ef3ae6fa1b859fe5213bd6 100644 (file)
@@ -170,4 +170,6 @@ class CacheMemory : public SimObject
     bool m_resource_stalls;
 };
 
+std::ostream& operator<<(std::ostream& out, const CacheMemory& obj);
+
 #endif // __MEM_RUBY_SYSTEM_CACHEMEMORY_HH__
index 68ef054e37365a6fcf7f08e19b9f75cda5fa8fee..d0dfa5b8da4725df48fb09646284413bd9fd6cbd 100644 (file)
@@ -168,4 +168,6 @@ class RubyMemoryControl : public MemoryControl
     MemCntrlProfiler* m_profiler_ptr;
 };
 
+std::ostream& operator<<(std::ostream& out, const RubyMemoryControl& obj);
+
 #endif // __MEM_RUBY_SYSTEM_MEMORY_CONTROL_HH__
index d71bf452067ebaf33db045e1bab1a767f2097192..3a8804798445c2ffeddcd0b996d2a5bb17e62fdc 100644 (file)
@@ -100,4 +100,6 @@ class WireBuffer : public SimObject
 
 };
 
+std::ostream& operator<<(std::ostream& out, const WireBuffer& obj);
+
 #endif // __MEM_RUBY_SYSTEM_WireBuffer_HH__
index fc4435781c64615d5a274f076c583b546c1b5f32..f534623f8fa1bdd3f94806cb7c3705e8781333ae 100644 (file)
 #include "base/inifile.hh"
 #include "base/output.hh"
 #include "dev/etherdevice.hh"
-#include "dev/etherint.hh"
 #include "dev/etherobject.hh"
 #include "mem/mem_object.hh"
 #include "mem/port.hh"
+#include "python/swig/pyobject.hh"
 #include "sim/full_system.hh"
 #include "sim/sim_object.hh"
 
index ab22df864f6a3264b143b38a7239709e598f67ef..8debcc82c7d91f7586bab37c9cec64d023adc88e 100644 (file)
 #include <Python.h>
 
 #include "base/types.hh"
+#include "dev/etherint.hh"
 #include "sim/serialize.hh"
 #include "sim/sim_object.hh"
 
 extern "C" SimObject *convertSwigSimObjectPtr(PyObject *);
 SimObject *resolveSimObject(const std::string &name);
 
+EtherInt * lookupEthPort(SimObject *so, const std::string &name, int i);
+
 /**
  * Connect the described MemObject ports.  Called from Python via SWIG.
  */
index 0bec5ecf3203f033b7681c3b19b49b810987ebe6..bc1bb1e62d5f3cb0623f3bc580e02cd3dcea226d 100644 (file)
@@ -53,6 +53,8 @@ void takeCheckpoint(Tick when);
  */
 void eventqDump();
 
+void py_interact();
+
 int getRemoteGDBPort();
 // Remote gdb base port.  0 disables remote gdb.
 void setRemoteGDBPort(int port);
index 2f5d2d965abe8e4ac3cb43aa031ea2fec42a7201..6f0769f34387a57d86f078315b4c5de710b93df9 100644 (file)
@@ -236,4 +236,7 @@ class Drainable
 
 };
 
+DrainManager *createDrainManager();
+void cleanupDrainManager(DrainManager *drain_manager);
+
 #endif
index 968be6ca1c897582c60704263667923d9199e8b6..80086ccefeed8a31fc8f2822bad356e72a057470 100644 (file)
@@ -418,6 +418,8 @@ class EventQueue : public Serializable
 #endif
 };
 
+void dumpMainQueue();
+
 #ifndef SWIG
 class EventManager
 {
index ee40b979074e8f5274bbfb59333ec6f8e24bb02e..325fc8e6f49506bca87c936ae9008caf195f3631 100644 (file)
@@ -31,6 +31,8 @@
 #ifndef __SIM_INIT_HH__
 #define __SIM_INIT_HH__
 
+#include <Python.h>
+
 /*
  * Data structure describing an embedded python file.
  */
@@ -74,8 +76,13 @@ struct EmbeddedSwig
     static void initAll();
 };
 
+void dumpStatsHandler(int sigtype);
+void dumprstStatsHandler(int sigtype);
+void exitNowHandler(int sigtype);
+void abortHandler(int sigtype);
 void initSignals();
 int initM5Python();
 int m5Main(int argc, char **argv);
+PyMODINIT_FUNC initm5(void);
 
 #endif // __SIM_INIT_HH__
index dd33ae74feeb442aa2fe5ad125d80a388120e107..e523e68a546f9bbb51ad098eacce2cf585a58652 100644 (file)
@@ -178,6 +178,8 @@ class Serializable
     static void unserializeGlobals(Checkpoint *cp);
 };
 
+void debug_serialize(const std::string &cpt_dir);
+
 //
 // A SerializableBuilder serves as an evaluation context for a set of
 // parameters that describe a specific instance of a Serializable.  This
index 6424f631b9fbc07c8042d2e9512ddeb5de4f6016..1cb06d777d6fbb7f65fdc686003fbb59618da58f 100644 (file)
@@ -176,4 +176,8 @@ class SimObject : public EventManager, public Serializable, public Drainable
     static SimObject *find(const char *name);
 };
 
+#ifdef DEBUG
+void debugObjectBreak(const char *objs);
+#endif
+
 #endif // __SIM_OBJECT_HH__
index 1a0fcb35b38b85bbb8640b2573f7cbecf2720d46..889a98364e8b454473f6204a2b218e97be000cac 100644 (file)
 
 namespace Stats {
 
+double statElapsedTime();
+
+Tick statElapsedTicks();
+
+Tick statFinalTick();
+
 void initSimStats();
 
 /**
index 05b1f20779f8145cc7efc4e97be3d54ca891e5f1..38db86cb29f0db6d812da4fe1bea669cd88c8417 100644 (file)
@@ -472,4 +472,6 @@ class System : public MemObject
 
 };
 
+void printSystems();
+
 #endif // __SYSTEM_HH__